delegate 有一个begininvoke 方法,
会开一个新线程去处理。
当需要处理UI 控件时,需要判断,caller是不是和该控件在一个线程上,否则就要用delegate回到ui 线程。
并且调用控件的Invoke方法。
例如
private delegate void SetTextHandler(string msg);
if (txtOutput.InvokeRequired)
{
SetTextHandler handler = new SetTextHandler(SetText);
this.txtOutput.Invoke(handler, new object[] { msg });
}
else
txtOutput.Text += msg + "\r\n";
异步调用方法
时间: 2024-10-06 16:35:50