MethodInvoker 委托

 

MethodInvoker 委托   .
http://blog.csdn.net/qq408146580/article/details/17504825

2013-12-23 14:58 


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);
             }
         }

}




写简单点就是。。




 BeginInvoke(new MethodInvoker(delegate
               {
                     this.textBox1.Text = "线程:" + Thread.CurrentThread.Name;
               }));
 
      

 

posted @ 2017-06-24 16:14  sky20080101  阅读(155)  评论(0)    收藏  举报