Event.Invoke()不会触发所有事件

时间:2017-01-08 16:14:30

标签: c# multithreading events invoke

所以我有一个简单的事件:

public delegate void TestEvent();
public TestEvent Test;

然后我在1xclass&中定义事件1xcontrol使用。 (一个更新后端设置,另一个更新UI。)

Test += TestRun;

现在,如果我从主UI线程触发事件,请使用:

Test?.Invoke();

它运作得很好。这两件事都发生了火灾。它正确更新。大。但是,如果我从后台线程中触发它,UI事件永远不会被引发(但是后者会引发)。

有谁知道为什么会这样?如何确保事件在所有线程上触发?

P.S。 我在UI事件中获得了此Dispatcher代码,以确保不会发生跨线程更新。

if (!Dispatcher.CheckAccess())
{
   Dispatcher.Invoke(new TestEvent(TestRun));
   return;
}

非常感谢

Ian Chapple

0 个答案:

没有答案