C#跨线程窗体调用

来源:互联网 发布:武汉软件测试 编辑:程序博客网 时间:2024/06/05 03:25

内容:由于vs2005中,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。  

     现想在在调用的类中,想显示提示调用的进度,并相应的给函数执行步骤的提示信息显示到ListBox上。  

一,设置  

System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;   

二,委托

    在Form上,  

   private string _Info = "";
   
public string Info
   {
       
set
        {
            _Info 
= value;
            ShowInfo();
        }
        
get
        {
            
return _Info;
        }
   }

   
private void ListMsg()
   {
       
this.listBox1.Items.Insert(0, DateTime.Now.ToString() + InfoMessage);
   }

   
public void ShowInfo()
   {
      MethodInvoker In 
= new MethodInvoker(ListMsg);
      
this.BeginInvoke(In);
   }

    在Class中,调用方式:   Form.Info="提示信息";

原创粉丝点击