所以我有一个简单的事件:
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