Advertisement

在C#编程中使用多线程访问winform控件

阅读量:

方案一:将System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls属性设置为false;

此方式并不被建议采用,其本质是通过禁用编译器对跨线程操作的检测机制来实现目的。

方案二:借助delegate与invoke机制进行处理

复制代码
 private delegate void UpdateLabel2Delegate(string message);

    
     void UpdateLabel2(string message)
    
     {
    
         if (label1.InvokeRequired)
    
         {
    
             UpdateLabel2Delegate md = new UpdateLabel2Delegate(UpdateLabel2);
    
             label1.Invoke(md, new object[] { message });
    
 		//label1.BeginInvoke(md, new object[] { message });
    
         }
    
         else
    
         {
    

全部评论 (0)

还没有任何评论哟~