我有一个管理 UI 的类,其中包含此方法:
public void SetField(int field, int value)
我有一个代表声明:
public delegate void SetFieldDelegate(int field, int value);
在按钮按下事件中,我在后台线程上调用另一个类的计算量大的方法。UI 没有冻结,工作正在完成。有时,我想更新 UI,但我尝试为此使用委托,以避免跨线程操作:
Gui.SetFieldDelegate TestDelegate = new Gui.SetFieldDelegate(gui.SetField);
在繁重的工作方法中,我调用:
TestDelegate.Invoke(field, value);
但这仍然是无效的跨线程操作。我敢肯定这是微不足道的,但我迷路了。此外,如果有更简单的方法可以做到这一点,欢迎提出任何建议。