C#委托解决假死问题

author Owner  •  Filed under templates, internet

假死是因为主线程任务等待时间过长,或者处理问题时间过长。可考虑使用进度条来提示用户。

在C#中,委托可以很好的解决假死问题。

  1. 定义委托原型,声明原型变量;

  2. 异步执行

  3. 异步更新窗体控件内容,为用户提供相应信息。

public delegate List<string> ConvertAction(string[] file);

convertAction.BeginInvoke(param, callback, object);

public void SetProcess(int process)
{
    System.Windows.Forms.MethodInvoker invoker = () =>
    {
           this.progressBar1.Value = process;
     };

     if (this.label1.InvokeRequired)
     {
          this.label1.Invoke(invoker);
      }
      else
     {
          invoker();
      }
}

技巧:委托可以返回一个自己定义的类,委托的参数可设置成全局变量,在初始化时进行赋值。

Tagged: orci, lectus, varius, turpis

Comments (0)  • 2016-01-07 08:58:34 •  Edit

0 Responses

最新文章