积极答复者
请教一个多线程的问题,思路有点乱

问题
-
本意是,主线程开启一个子线程,但不阻塞主线程,两个线程同时工作,不用同步
但是,一些代码,在一个线程,即主线程内用没问题,在子线程下用会出错,问题知道,直接导致主程序退出。
所以问问,有没有办法,让子线程完成之后,在回到主线程,但是不要join把主线程给阻断了。有人提过用Invoke,可是Invoke是form里才有的
我的主线程不是Form的,请问该如何做呢?
希望能够子线程通知主线程,让主线程做出响应。
谢谢!
My Program Tech Blog
My Professional Tech Blog
答案
-
问题已经解决
需要通过UI线程的invoke调用方法,才能在主线程中执行
所以我现在只能在主线程中生成form对象,然后使用它的invoke调用方法,就是在主线程中执行的。
我估计那个在子线程执行的函数出错,就是因为与UI线程有资源争夺问题而出的。
现在看来,强制在UI线程中执行方法,除了Form的invoke,还真的是没办法。
因为委托的invoke方法是生成新的线程,也不行。
- 已标记为答案 BoberSongModerator 2010年10月7日 6:49
全部回复
-
-
你好 是可以在子线程中调用其它方法的,能否把你的完整代码贴出来?
I see you~,.NET交流群71840452 ,微软中文论坛同城社区成都QQ群:74268428http://hi.baidu.com/1987raymondMy Blog~~~ -
问题已经解决
需要通过UI线程的invoke调用方法,才能在主线程中执行
所以我现在只能在主线程中生成form对象,然后使用它的invoke调用方法,就是在主线程中执行的。
我估计那个在子线程执行的函数出错,就是因为与UI线程有资源争夺问题而出的。
现在看来,强制在UI线程中执行方法,除了Form的invoke,还真的是没办法。
因为委托的invoke方法是生成新的线程,也不行。
- 已标记为答案 BoberSongModerator 2010年10月7日 6:49