我们在用线程操作的时候,可能会出现异常:线程间操作无效: 从不是创建控件richTextBox1的线程访问它。因为windows窗体控件不是线程安全的,如果几个线程操作某一控件的状态,可能会使该控件的状态不一致,出现争用或死锁状态。这种情况有以下解决办法:

   利用委托机制实现线程安全。这种方法就是微软建议采用的跨线程调用的一种通用方法,就是使用代理来实现,就是将你所要操作的代码放到一个代理中,然后将这个代理交给创建这个控件的线程来执行你的代码。

 

private delegate void richTextBoxCallBack(); 

 

public void SetText(){

  richTextBoxCallBack callback = delegate()//使用委托 

   { 

    richTextBox1.AppendText("test");

 

  };

   richTextBox1.Invoke(callback); 

}

posted on 2012-08-21 12:25  Rain&Sun  阅读(2075)  评论(0编辑  收藏  举报