请教: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做什么设置?还望答复。
...全文
87 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jxw 2006-03-17
已经解决问题了。
需要调用窗体的InvokeRequired判断当前线程是否需要进行回调,然后使用 委托 来将函数地址封装传给(invoke)窗体主线程,由主线程进行调用,进行回调。
我想,这样是用来保证界面窗体使用的线程安全。
回复
jxw 2006-03-16
怎么没人回答的阿。
我顶!
回复
相关推荐
发帖
分析与设计
创建于2007-09-28

1.3w+

社区成员

.NET技术 分析与设计
申请成为版主
帖子事件
创建了帖子
2006-03-16 06:11
社区公告
暂无公告