我正在使用线程在程序的 UI 中运行长时间的操作,这样它就不会被锁定。但是,在这些任务中,我需要更新控件,这不可能不是来自创建它们的线程。建议使用 control.BeginInvoke(Delegate) 来执行你想要的方法。
但是,要做到这一点,您必须声明一个委托类型,然后才能调用它们。
所以,它是这样的:如果我想执行方法 void Update(),我必须去:
delegate void CallbackVoid();
void Update() {...}
...(in task code)...
this.BeginInvoke(new CallbackVoid(Update));
对于那里的每一种方法,这都是相当烦人的。我不能以某种方式自然地做到这一点,例如:
void Update() {...}
this.BeginInvoke(Update);