【发布时间】:2014-09-19 15:00:21
【问题描述】:
我需要完成以下场景。 ThreadMethod() 是一个 Timer 方法,我在 Invoke 语句中有 UI 更新。我需要等到 Invoke 完成其工作,然后继续该方法。我该如何应对?
public void ThreadMethod(){
//do some work
this.Invoke((MethodInvoker)delegate
{
//do some GUI update
});
//wait till Invoke finish its work
}
【问题讨论】:
-
它已经这样工作了,只有 BeginInvoke() 不等待。
-
你已经在等待了。 Invoke 被阻塞并在委托执行后返回。
-
不等了,我做了一个测试例子:
System.Threading.Thread.Sleep(500); Console.Write("1"); this.Invoke((MethodInvoker)delegate { System.Threading.Thread.Sleep(2000); Console.Write("2"); });,输出是112112
标签: c# multithreading timer invoke