首页 > 技术文章 > 线程异步更新UI

guxia 2017-07-13 17:05 原文

winform程序一般是不允许非主线程操作ui,单可以通过线程与委托的方式并结合Control类提供的BeginInvoke机制进行ui更改

如下,这是更新ui的方法

 

private void upUiMethod()
{
    .....
}

1:创建委托

  private delegate void delegateUpUI();

  private delegateUpUI delUpUI;

2:给委托添加方法

delUpUI+=upUiMethod;

3:创建invoke方法

 public void upUiInvoke()
 {
     while (!this.IsHandleCreated)
     {
         Thread.Sleep(200);
     }
     this.BeginInvoke(delUpUI);
  }    

4.创建线程

Thread thred = new Thread(new ThreadStart(upUiInvoke)); 
thred.IsBackground
= true;
thredI.Start();

 

推荐阅读