今日,第一次感受到VS 2005的安全性,花左大半日的时间,终于可以令蜘蛛程序运行起来
线程的问题,呵呵
虽然好早就知,不过就系吴知点解决,用invoke方法
无奈了,只好用微软所讲的吴安全的方法
VS 2005环境下线程间控件访问的简单方法
VS 2005为了增加安全性,在默认情况下,多线程操作时,一个线程是不能够修改另外一个线程创建的控件的,而在2003似乎是可以的。线程间空间访问的常规方法那就是用代理(Delegate),执行invoke方法,这是.net所推荐的方法,具体用法介绍的文章很多,就不再赘述。
用代理进行线程间访问时,对每一个跨线程控件的修改都要定义相关的代理方法,相对麻烦一些,如果在对系统安全性要求不高的情况下可以用一种简单的方法:在创建空间的窗体构造函数中添加如下代码:
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
即不进行跨线程合法性检查,这样虽然是.net所不推荐的方式,但是简便了很多
没有评论:
发表评论