C++でCreateThreadを使用する方法を教えてください。
CreateThread は Windows API で新しいスレッドを作成する関数で、C++ では次のように使用します。
#include <Windows.h>
DWORD WINAPI ThreadFunction(LPVOID lpParam) {
// 线程执行的代码逻辑
return 0;
}
int main() {
// 创建线程
HANDLE hThread = CreateThread(
NULL, // 默认安全属性
0, // 默认堆栈大小
ThreadFunction, // 线程函数
NULL, // 传递给线程函数的参数
0, // 默认创建线程立即运行
NULL // 不返回线程ID
);
if (hThread == NULL) {
// 线程创建失败的处理逻辑
}
// 等待线程结束
WaitForSingleObject(hThread, INFINITE);
// 关闭线程句柄
CloseHandle(hThread);
return 0;
}
上のコードでは、CreateThread 関数はスレッドを作成し、そのエントリ ポイントとして ThreadFunction 関数を指定しています。CreateThread 関数の最初のパラメータはセキュリティ属性、2 番目のパラメータはスタック サイズ、3 番目のパラメータは LPVOID 型のパラメータを受け取るスレッド関数です。4 番目のパラメータはスレッド関数に渡される引数、5 番目のパラメータはスレッドが作成されたらすぐに実行されるかどうか、6 番目のパラメータはスレッド ID を格納するポインタで、スレッド ID を取得する必要がない場合は NULL とすることができます。CreateThread 関数はスレッド ハンドルを返します。このハンドルは後続の操作に使用できます。
主関数は、WaitForSingleObject関数を用いてスレッドの終了を待ち、CloseHandle関数を用いてスレッドのハンドルを閉じ、リソースを解放します。
CreateThread 関数で作成するスレッドは Windows 固有のスレッドであるため、C++ の標準ライブラリのスレッドとは異なります。C++ の標準ライブラリのスレッドを使用する場合は、std::thread クラスを使用してスレッドを作成し、管理します。