使用委托解决方法的跨线程调用问题

  1 //声明和需进行跨线程调用的方法相同形参表的委托
  2 public delegate void AddStatusInfoToFormCallback(string str);
  3 private void AddStatusInfoToForm(string str)
  4 {
  5     //检测调用控件的线程和创建控件的线程是否相同
  6     //如果调用控件的线程和创建创建控件的线程不是同一个则为True
  7     if (InvokeRequired)
  8     {
  9         //使用委托调用本方法
 10         var d = new AddStatusInfoToFormCallback(AddStatusInfoToForm);
 11         Invoke(d, str);
 12     }
 13     else
 14     {
 15         //当前线程调用
 16         Controls.Clear();
 17     }
 18 }
posted @ 2017-08-03 09:38  玮仔Wayne  阅读(399)  评论(0编辑  收藏  举报