2010-04-19 70 views
0

如何使用win32 API暫停正在運行的線程?

  1. 創建處於暫停狀態的線程。

    hThrd1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) ThreadProc1, (LPVOID) 
    &obj1, CREATE_SUSPENDED, &dwFirstThreadID); 
    
  2. 恢復該線程需要時

    ResumeThread(hThrd1); 
    

如何中止這個正在運行的線程。我可能會在某段時間後恢復它,但我現在要暫停它。

我叫

SuspendThread(hThrd1); 

仍然在ThreadProc的循環繼續運行。現在我該如何避免它?也建議我的任何替代品。

+1

暫停功能是否成功? – 2010-04-19 11:51:16

回答

2

我得到了問題。最初線程HANDLE hThrd1在WndProc中聲明。由於WndProc再次被調用&,我在CreateThread期間得到的HANDLE與傳遞給掛起線程的HANDLE不同。 (這是一個尷尬的錯誤)

現在我已經宣佈它全球。這解決了問題並按預期工作。