3

假设我有 2 个线程 - 线程 A 和线程 B。我在线程 A 上注册一个事件并从线程 B 调用它。事件将在哪个线程上执行?

以上不适用时,是否有特殊情况?

还有如何在不使用任何锁的情况下使类线程安全。

提前致谢

4

1 回答 1

4

除非您采取一些显式操作,否则将在引发事件的线程上调用事件处理程序。通常,“引发事件”只是调用委托,这是同一线程上的同步操作。

还有如何在不使用任何锁的情况下使类线程安全。

我们没有足够的信息来回答这个问题,理想情况下这将是一个不同的问题。但是在问这个单独的问题之前,你应该真正问问自己“线程安全”是什么意思——它对不同的人可能意味着很多不同的东西。有关更多信息,请参阅Eric Lippert 关于该主题的博客文章

(特别是如果您正在考虑事件,请考虑一个线程在引发事件时订阅或取消订阅事件的可能性- 您需要发生什么?)

于 2013-05-11T09:53:01.753 回答