本文主要是介绍使用MethodInvoker委托进行跨线程访问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MethodInvoker 提供一个简单委托,该委托用于调用含 void 参数列表的方法。在对控件的 Invoke 方法进行调用时或需要一个简单委托又不想自己定义时可以使用该委托(摘自MSDN)
在多线程编程时,DotNet2.0会对跨线程访问控件进行限制的,说是为了线程安全。
MSDN提供一种声明委托的例子,使用MethodInvoker可以不用声明的
如:
private void MutiThreadTest()
{Thread testThread=new Thread(new ThreadStart(CommonInvoker));testThread.Start();}
private void CommonInvoker()
{SaveFileDialog saveDlg = new SaveFileDialog();if (this.InvokeRequired){MethodInvoker methodInvoker= new MethodInvoker(CommonInvoker);this.Invoke(methodInvoker);}else{//this.textBox1.Text = "good!";if (saveDlg.ShowDialog() == DialogResult.OK){MessageBox.Show(saveDlg.FileName);}}
}
这篇关于使用MethodInvoker委托进行跨线程访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!