特投网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

(站外) 特投工作室

查看: 1930|回复: 0

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

[复制链接]

2583

主题

1018

回帖

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
70059
QQ
发表于 2016-2-8 16:43:40 | 显示全部楼层 |阅读模式
有两种方式解决
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 ... 6fFoYg-QerF23X5T4uK
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

您尚未登录,请登录后浏览更多精彩内容!
 立即注册
找回密码

QQ|Archiver|手机版|小黑屋|特投网 ( 皖ICP备13010674号-1 

GMT+8, 2024-12-4 01:04 , Processed in 0.026661 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表