我在Win32 nt5環境中編程。終止使用QueueUserWorkItem創建的線程池中的長時間運行線程(win 32/nt5)
我有一個函數將被調用很多次。每個電話都是原子的。我想用QueueUserWorkItem
來利用多核處理器。
我遇到的問題是我只想給功能3秒鐘完成。如果它在3秒內沒有完成,我想終止線程。
目前,我做這樣的事情:
HANDLE newThreadFuncCall= CreateThread(NULL,0,funcCall,&func_params,0,NULL);
DWORD result = WaitForSingleObject(newThreadFuncCall, 3000);
if(result == WAIT_TIMEOUT)
{
TerminateThread(newThreadFuncCall,WAIT_TIMEOUT);
}
我只是生成一個單獨的線程並等待3秒,即可完成。有沒有辦法做類似的事情,但使用QueueUserWorkItem
排隊工作?