W
wksdgy
Unregistered / Unconfirmed
GUEST, unregistred user!
程序中有一个线程实时运行,线程中有判断语句,一但terminated=true便退出线程,在我关闭主程序的ONCLOSE事件中,写有判断语句如下:
dd //是线程,创建时freeonterminate已设置为true;在Execute过程中有Synchronize同步。
-------------
dd.Terminate;
j:=0;
repeat
if WaitForSingleObject(handle,2000)=WAIT_FAILED then
j:=1;
//表示线程已正常退出
i:=i+1;
application.ProcessMessages;
sleep(10);
until (j>0);
-------
因为有Synchronize同步,所以不能用WaitForSingleObject(dd.handle,INFINITE);
只有每2秒循环判断dd.HANDLE的状态,但是这种方式有时候退出主程序时会保证线程
正常退出,有时候主程序不能退出处于停滞状态,我怀疑是线程没有正常退出,但又不
知道怎么去解决这种问题,望大侠们帮帮忙,谢谢了!
dd //是线程,创建时freeonterminate已设置为true;在Execute过程中有Synchronize同步。
-------------
dd.Terminate;
j:=0;
repeat
if WaitForSingleObject(handle,2000)=WAIT_FAILED then
j:=1;
//表示线程已正常退出
i:=i+1;
application.ProcessMessages;
sleep(10);
until (j>0);
-------
因为有Synchronize同步,所以不能用WaitForSingleObject(dd.handle,INFINITE);
只有每2秒循环判断dd.HANDLE的状态,但是这种方式有时候退出主程序时会保证线程
正常退出,有时候主程序不能退出处于停滞状态,我怀疑是线程没有正常退出,但又不
知道怎么去解决这种问题,望大侠们帮帮忙,谢谢了!