c++ ResumeThreadの使い方
C++では、ResumeThread関数を用いることで、中断されたスレッドを再開することができます。ResumeThread関数のプロトタイプは次のとおりです。
ResumeThread(DWORD
HANDLE hスレッド
実は、来週は予定があるので行けません。
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 関数を使用してスレッドハンドルを閉じます。