日期:2014-05-18  浏览次数:21131 次

调试时出现线程间操作无效的问题
我手头有一个从c#的工程,涉及多线程的技术,直接运行无错。我想研究下他的实现过程 ,但当我调试时出现 “线程间操作无效: 从不是创建控件“lstContent”的线程访问它 ” 。请问如何解决? 谢 !

------解决方案--------------------
探讨
vs2003下的多线程,升到2005是编译不过的,直接运行是原来已编译好的,所以不会出错,要是调试,就是用2005进行编译,就会出错,你是不是这样情况,如果不是,就要检查线程lstContent,以及主次关系,

------解决方案--------------------
http://blog.csdn.net/huangbomeizi/archive/2008/07/05/2613654.aspx
------解决方案--------------------
首先,这个工程本身的设计问题很大,不同的线程共同访问一个对象,所以会有这个异常。修改一下会好的。

当然,感谢微软的设计,不在调试时你是不会注意到这个异常的。

这个和升级没多大关系,主要是代码质量的问题。
------解决方案--------------------
1、 CheckForIllegalCrossThreadCalls=false 线程间不安全
2、用控件的invoke方法和委托 安全