当你须要通过一个耗时操作获取到数据,并扭转窗体或控件的显示时,该工具能够为你解决窗体假死,以及跨线程的问题。

解决System.InvalidOperationException:“线程间操作有效: 从不是创立控件“”的线程拜访它。”

首先看看在我的我的项目中理论应用:
//多线程工具this.TaskRun(cross =>{  //多线程代码,申请API  List<EmpType> types = ApiRoutes.EmpApi.GetTypeList(out string msg);  //跨线程代码块  cross.Invoke(delegate  {    uiDataGridView1.DataSource = types;    uiDataGridView1.Refresh();  });});
你只须要创立如下工具类:
public static class TaskEx{  /// <summary>  /// 启动多线程  /// </summary>  public static void TaskRun(this System.Windows.Forms.Control ctrl, Action<Action<Action>> action)  {    System.Threading.ThreadPool.QueueUserWorkItem(delegate     {      action.Invoke(b => ctrl.Invoke(b));    });  }}