public object Invoke(Delegate method)
也就说,它所接受的是一个Delegate,那么,任何一个派生自Delegate的实例,都是可被接受的。我们知道,类似ThreadStart,MethodInvoker都派生自Delegate,那么编译器在转化这个匿名函数的时候,就不知道要将这个匿名函数转为ThreadStart还是MethodInvoker,于是报错。(代表一个委托函数的,还有ParameterizedThreadStart、WaitCallback、AsyncCallback等,只不过他们都是带有参数的。)
以上描述是拷贝别人的; 详细 出自 http://hi.baidu.com/%C2%E4%CB%AE%C9%F1/blog/item/548f3edf8fe7eff577c638aa.html
wpf
private void btn2_Click(object sender, RoutedEventArgs e)
{Thread _t = new Thread(new ThreadStart(delegate() {
this.Dispatcher.Invoke(new Action(()=> { 执行内容 }), null);
}));
_t.Start();
}
winfrom
private void btn2_Click(object sender, RoutedEventArgs e)
{Thread _t = new Thread(new ThreadStart(delegate() {
this.Invoke(new MethodInvoker(()=>{执行代码}));
}));
_t.Start();
}