如何判断一个线程结束。包括正常退出和异常死掉了? ( 积分: 100 )

  • 主题发起人 主题发起人 mxflg
  • 开始时间 开始时间
M

mxflg

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中,加了FreeOnTerminate:=true;在正常结束的时候就会执行Destroy;的内容。
我可以设置一些标志判断线程是否结束。
但是如果线程中因为异常而终止了或者不动了,那还会触发Destroy;吗?
如果不能,那可以有什么方法知道线程已经终止了呢?
 
我在程序中,加了FreeOnTerminate:=true;在正常结束的时候就会执行Destroy;的内容。
我可以设置一些标志判断线程是否结束。
但是如果线程中因为异常而终止了或者不动了,那还会触发Destroy;吗?
如果不能,那可以有什么方法知道线程已经终止了呢?
 
if WaitforSingleObject(hThread,100) <>
WAIT_OBJECT_0 then
begin
TerminateThread(hThread,1);
 
CloseHandle(hThread);
end;
 
线程执行体中用try except处理异常
 
迷糊兄所言极是,我向来都这么做的。
 
后退
顶部