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 クラスを使用してスレッドを作成し、管理します。

bannerAds