判斷執行緒是否釋放

2021-06-07 09:16:12 字數 824 閱讀 2316

/判斷執行緒是否釋放

//返回值:0-已釋放;1-正在執行;2-已終止但未釋放;

//3-未建立或不存在

function tfrmmain.checkthreadfreed(athread: tthread): byte;

var

i: dword;

isquit: boolean;

begin

if assigned(athread) then

begin

isquit := getexitcodethread(athread.handle, i);

if isquit then //if the function succeeds, the return value is nonzero.

//if the function fails, the return value is zero.

begin

if i = still_active then //if the specified thread has not terminated,

//the termination status returned is still_active.

result := 1

else

result := 2; //athread未free,因為tthread.destroy中有執行語句

end

else

result := 0; //可以用getlasterror取得錯誤

**end

else

result := 3;

end;

判斷執行緒是否全部結束

第一種 使用executorservice.isterminated executorservice cachedthreadpool executors.newcachedthreadpool cachedthreadpool submit new callable cachedthreadpoo...

C 判斷執行緒是否結束Alive

using system using system.collections.generic using system.linq using system.text using system.threading.tasks using system.threading namespace 5006 判...

判斷執行緒是否結束的方法

1 getexitcodethread 比較原始的方法了,呼叫 getexitcodethread,如果返回still active,那就是還在執行,否則,會返回退出 該方法的優點是除了可以判斷是否已經退出,還可以獲取到退出 也就是可以判斷退出原因.該方法在呼叫後,會立即返回,如果需要等待執行緒呼叫...