我的一个线程从开始运行到结束需要花费1分钟的时间,当我的主程序退出时,在子线程中时常会有异常发生。原因是在这个子线程中需要通过窗口指针去调用窗口中的一些对象或者变量什么的,而程序退出窗口已被销毁,所以当使用窗口指针去操作时会发生异常。如果我一直等,直到子线程运行完我再退出,时间又太长,请问该怎样处理呢?谢谢!

解决方案 »

  1.   

    必须等待子线程返回
    ==================
    WaitForSingleObject(hYourThread,INFINITE);
      

  2.   

    通过窗体指针访问对象前先检查其有效性
    父窗口等的时间长,可以强制关闭线程 TerminateThread
    如果是循环操作的,最好每次循环Sleep一段时间给其它进程,以方便父窗口消息的处理和传递
      

  3.   

    可以CreateRemoteThread把你的线程注入一个一直运行的process。前提是你要使线程和主程序完全分开