2003里可以运行的,为什么在2005(.net 2.0)里出了异常?

jxw 2006-03-16 08:56:18
我在模块dll里开了线程,用事件的办法试图传出数据进行处理,处理的时候使用了外部程序的控件对象。在2003里使用的好好的,但是我移植到2005(.net 2.0)中就出了问题,每次在从模块里触发的事件里使用控件时,就报了异常:Cross-thread operation not valid: Control '###' accessed from a thread other than the thread it was created on. 请问高手,这是为何?
难道我只能通过外部程序的界面事件才能使用这些外部的控件么?或者我应该对模块dll做什么设置?还望答复。
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjlsmail 2006-04-20
  • 打赏
  • 举报
回复
mark
李洪喜 2006-03-17
  • 打赏
  • 举报
回复
在线程中操作原来窗体上的控件,要使用委托的。
蒋晟 2006-03-17
  • 打赏
  • 举报
回复
http://blog.joycode.com/jiangsheng/archive/2006/03/15/72919.aspx
jxw 2006-03-17
  • 打赏
  • 举报
回复
谢谢阿。
解决问题了。的确需要 委托 ,但是主要是用委托来将函数封装传给(invoke)窗体主线程,由主线程进行调用,进行回调。
我想,这样是用来保证界面窗体使用的线程安全。
DentistryDoctor 2006-03-16
  • 打赏
  • 举报
回复
不要跨线程直接UI类型的东东,应该向由线程发送消息,然后由主线程负责处理。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧