2010-04-19 107 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不同。 (这是一个尴尬的错误)

现在我已经宣布它全球。这解决了问题并按预期工作。