从不同的线程注册事件

时间:2010-04-01 22:30:48

标签: c# multithreading events

我对c#中的事件有疑问。 假设我有一个暴露事件的类的对象obj1,并且该对象在线程t1上运行。现在在不同的线程t2上,还有一个名为obj2的对象,它是为obj1的事件注册的。

是否承诺obj2会在筹集活动时获得该活动? 感谢。

1 个答案:

答案 0 :(得分:3)

是。但是,事件将在引发它的方法的线程上引发(这意味着事件处理程序将运行)。在你的情况下,这将在t1上提出。

如果“obj2”对象要求它的代码在t2上运行,则必须通过封送处理。例如,如果“obj2”是一个UI元素,这很重要。