加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C# 线程间操作无效 问题

(2011-01-08 14:28:49)
标签:

c

线程间操作无效

it

分类: 技术文章

今天遇到这个问题,搜索网页解决方案如下:

“从程序设计上来说,只有创建界面的主线程才能访问界面上的控件,所以会出错.
当然,设置CheckForIllegalCrossThreadCalls =false 是能去掉这个检查的,但是这不是标准的作法.
标准的作法是在访问界面控件时,访问下窗体的 InvokeRequired 属性,如果为false就可以直接访问,否则就是跨线程访问;此时,创建一个delegate,并通过Invoke() 来调用它.
详细的信息,可以在网上搜一下C#的跨线程访问,这方面的资料很多.”

具体的解决办法:

在程序开始时添加如下代码:

System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls   =   false;

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有