none
请教一个多线程的问题,思路有点乱 RRS feed

  • 问题

  • 本意是,主线程开启一个子线程,但不阻塞主线程,两个线程同时工作,不用同步

    但是,一些代码,在一个线程,即主线程内用没问题,在子线程下用会出错,问题知道,直接导致主程序退出。

    所以问问,有没有办法,让子线程完成之后,在回到主线程,但是不要join把主线程给阻断了。

     

    有人提过用Invoke,可是Invoke是form里才有的

    我的主线程不是Form的,请问该如何做呢?

     

    希望能够子线程通知主线程,让主线程做出响应。

    谢谢!


    My Program Tech Blog
    My Professional Tech Blog
    2010年10月6日 7:56

答案

  • 问题已经解决

    需要通过UI线程的invoke调用方法,才能在主线程中执行

    所以我现在只能在主线程中生成form对象,然后使用它的invoke调用方法,就是在主线程中执行的。

     

    我估计那个在子线程执行的函数出错,就是因为与UI线程有资源争夺问题而出的。

     

    现在看来,强制在UI线程中执行方法,除了Form的invoke,还真的是没办法。

    因为委托的invoke方法是生成新的线程,也不行。

    2010年10月7日 6:17

全部回复