我使用 C# 2.0 和 MethodInvoker 委托,我的 GUI 应用程序从 GUI 线程或工作线程接收一些事件。
我使用以下模式来处理表单中的事件:
private void SomeEventHandler(object sender, EventArgs e)
{
MethodInvoker method = delegate
{
uiSomeTextBox.Text = "some text";
};
if (InvokeRequired)
BeginInvoke(method);
else
method.Invoke();
}
使用这种模式,我不会复制实际的UI代码,但我不确定这种方法是否好。
特别是,这一行:
method.Invoke()
它是使用另一个线程进行调用还是在GUI线程上直接调用该方法?