Win32API: CreateThread

スレッドを作成します。


定義
Declare Function CreateThread Lib "kernel32" Alias "CreateThread" _
   (ByRef lpThreadAttributes As SECURITY_ATTRIBUTES, _
          dwStackSize As DWord, _
          lpStartAddress As DWord, _
          lpParameter As VoidPtr, _
          dwCreationFlags As DWord, _
          lpThreadId As DWordPtr) As HANDLE
lpThreadAttributes
取得したハンドルの子プロセスへの継承を許可するかどうかを決める、SECURITY_ATTRIBUTES 構造体へのポインタを指定します。ハンドルを継承しないときは NULL を指定して下さい。

dwStackSize
新しいスレッド用に確保するスタックサイズをバイト単位で指定します。0 を指定するとデフォルトのサイズになります。

lpStartAddress
新しいスレッドの開始アドレスを指定します。AddressOf関数を利用するとプロシージャの開始アドレスを取得することができます。

lpParameter
スレッドに渡す32ビット値を指定します。

dwCreationFlags
CREATE_SUSPENDED フラグを指定すると、サスペンド状態のスレッドが作成されます。省略するときは 0 を指定します。

lpThreadId
DWord型変数へのポインタを指定します。この変数に作成されたスレッドのIDが格納されます。

戻り値

関数が成功すると、作成されたスレッドのハンドルが返ります。失敗すると 0 が返ります。

解説

スレッドのハンドルが不要になったときは、CloseHandle関数でメモリから解放して下さい。

作成されるスレッドの優先順位は THREAD_PRIORITY_NORMAL になります。優先順位の取得、設定はそれぞれ、GetThreadPriority関数SetThreadPriority関数を利用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


CloseHandle関数ExitThread関数ResumeThread関数