Form的 关闭 按钮,有很多写盘的工作,所以我创建一线程,完成次工作,但是我这里关闭Form,线程也就跟着释放掉了,写盘工作只能做一半,谁有好办法?

解决方案 »

  1.   

    写盘工作放到CloseQuery中,完成后再Action := caFree;
      

  2.   

    在程序结束时用
    MyThread.Terminate;
    MyThread.WaitFor;
    试试,当然你的线程必须自行判断,直到写盘结束后才根据Terminated,来决定是否结束线程。
      

  3.   

    你可以waitforsingleobject来等待一个线程的结束。或者用tthread.wait;
      

  4.   

    这样的话,不是没有线程的意义了吗?我希望的是关闭Form不影响线程继续运行,写盘完了,线程释放。
      

  5.   

    程序结束了还要让线程继续,写TSR 了 ?Study  ,
      

  6.   

    在程序结束时用
    MyThread.Terminate;
    MyThread.WaitFor;
    试试,当然你的线程必须自行判断,直到写盘结束后才根据Terminated,来决定是否结束线程。
    这个用法会出错啊:系统提示什么句柄无效,无法正常退出程序啊!