tetou 发表于 2016-2-8 16:43:40

线程间操作无效: 从不是创建控件"Form1"的线程访问它.

有两种方式解决
1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false;
2.使用Invoke等委托函数。

问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThreadCalls =false;默认就是这样,现在默认为true。
如果不会好几个线程同时操作一个控件用方法1就可以。如果存在多个线程一起操作控件使用方法2

方法2可以

Invoke(new MethodInvoker(delegate()
{
//do something... }));

转自:http://zhidao.baidu.com/link?url=ADYkSuweB1lnxIv3ZS3Xe56uwg_mrAebKYnsWzOcInbP_NAmCctCPW9QFhZOFE5C0rx6fFoYg-QerF23X5T4uK
页: [1]
查看完整版本: 线程间操作无效: 从不是创建控件"Form1"的线程访问它.