up,是不是退出前每个线程都要关闭呀?

解决方案 »

  1.   

    当然要了
    FThread.Terminate;
    while FThread.Suspended do FThread.Resume;
    while WaitForSingleObject(FThread.Handle, 0) <> WAIT_OBJECT_0 do 
      for J := 0 to 1000 do Application.ProcessMessages;
      
      

  2.   


    那退出肯定很慢乐
    我有无限制的线程让用户去打开的
    退岂不是都要一个一个的去关闭?这需要时间一楼的朋友,dwgz呀, 看不太懂也, 能不能稍为打几个汉字解释一下
      

  3.   

    在主进程的关闭事件里加入下面代码,不关什么错误都可以解决,应用程序全部退出
    terminiteprocess(getcurrentprocess,2);
      

  4.   

    如果你的线程太多,结束肯定要一段时间,我建议你还是把线程的句柄保存起来,然后一个个都结束了就可以实现安全关闭了,
    当你创建线程的时候加入到一个list中,list->Add((void* )(Handle))
    当你程序结束的时候,
    for(int i =0;i<List->Items->Count;i++)
    TerminateThread((THandle* )(List->Item[i]))
      

  5.   

    好像不是线程关闭的问题吧。估计问题还是在主线程,看看退出前的代码(OnClose、OnDestory、、、),或许是在等待什么满足不了的条件。
      

  6.   

    我是在线程的一个循环里作如下
    if application.terminated then self.terminate;
    问题是暂时解决了,不过好像不是很好