您的位置:首页 > 编程语言 > C#

C# 线程间操作无效: 从不是创建控件的线程访问它

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

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

private delegate void richTextBoxCallBack();

public void SetText(){

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

   {

    richTextBox1.AppendText("test");

  };

  richTextBox1.Invoke(callback);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐