2010-04-01 65 views
3

我有一个关于c#中的事件的问题。 可以说我有一个暴露事件的类的对象obj1,并且此对象在线程t1上运行。现在在不同的线程t2上,有另一个名为obj2的对象,它被注册为obj1的事件。注册来自不同线程的事件

它承诺obj2会在事件升起时得到事件吗? 谢谢。

回答

3

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

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