在C++中使用ResumeThread函數可以恢復一個已被掛起的線程。ResumeThread函數的原型如下:
DWORD ResumeThread(
HANDLE hThread
);
參數hThread是一個指向線程句柄的指針,它是要恢復的線程的唯一標識符。
下面是一個使用ResumeThread函數的示例:
#include <iostream>
#include <windows.h>
DWORD WINAPI MyThreadFunction(LPVOID lpParam)
{
std::cout << "Thread is running..." << std::endl;
// 掛起線程
SuspendThread(GetCurrentThread());
std::cout << "Thread is resumed..." << std::endl;
return 0;
}
int main()
{
HANDLE hThread;
DWORD dwThreadId;
// 創建一個線程
hThread = CreateThread(
NULL, // 默認安全屬性
0, // 默認堆棧大小
MyThreadFunction, // 線程函數
NULL, // 無參數傳遞給線程函數
CREATE_SUSPENDED, // 創建時掛起線程
&dwThreadId // 線程ID
);
// 恢復線程
ResumeThread(hThread);
// 等待線程結束
WaitForSingleObject(hThread, INFINITE);
// 關閉線程句柄
CloseHandle(hThread);
return 0;
}
在這個示例中,首先使用CreateThread函數創建了一個掛起的線程。然后使用ResumeThread函數恢復了該線程。當線程被恢復后,它會繼續執行線程函數中的代碼,輸出"Thread is resumed…"。最后使用WaitForSingleObject函數等待線程結束,并使用CloseHandle函數關閉線程句柄。