请教:2003里可以,为什么2005会出异常?

jxw 2006-03-16 06:11:01
我在模块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做什么设置?还望答复。
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxw 2006-03-17
  • 打赏
  • 举报
回复
已经解决问题了。
需要调用窗体的InvokeRequired判断当前线程是否需要进行回调,然后使用 委托 来将函数地址封装传给(invoke)窗体主线程,由主线程进行调用,进行回调。
我想,这样是用来保证界面窗体使用的线程安全。
jxw 2006-03-16
  • 打赏
  • 举报
回复
怎么没人回答的阿。
我顶!

13,190

社区成员

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

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