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

  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 }
相关文章
相关标签/搜索