System.BeginThread

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord;
ThreadFunc: TThreadFunc; Parameter: Pointer; CreationFlags: LongWord;
var ThreadId: TThreadID): THandle;

C++

extern DELPHI_PACKAGE System::NativeUInt __fastcall BeginThread(void * SecurityAttributes, System::LongWord StackSize, TThreadFunc ThreadFunc, void * Parameter, System::LongWord CreationFlags, TThreadID &ThreadId);

プロパティ

種類 可視性 ソース ユニット
function public
System.pas
System.hpp
System System


説明

別個の実行スレッドを生成します。

このルーチンまたは TThread オブジェクトを使用すると、別個の実行スレッドを生成することができます。 BeginThread は、新しい実行スレッドを生成し、IsMultiThread グローバル変数を設定して、ヒープをスレッドセーフにします。

ThreadFunc はスレッド関数です。 これは、新しい実行スレッド内で実行されるコードのことです。 ThreadFunc では、そこで発生した例外をすべて処理するべきです。 ただし、BeginThread で実行の枠組みを設定しているため、ThreadFunc で捕捉できなかった例外はすべて、システムのデフォルト例外ハンドラによって捕捉されます。

Parameter は、1 つの 32 ビット パラメータを指します。これは、解釈を行わずにそのまま ThreadFunc に渡されます。

ThreadId は、新規スレッドの一意の識別子が返されます。 この ID は、デバッガの [スレッドの状態] ウィンドウに表示されます。

SecurityAttributes は、Windows の SecurityAttributes レコード(構造体)を指すポインタです。 SecurityAttributes の詳細は、Microsoft のマニュアルを参照してください。

StackSize は、CreationFlags に STACK_SIZE_IS_A_RESERVATION が含まれる場合に、新規スレッド用に確保するスタックのサイズです。 含まれない場合には、このパラメータは無視されます。

CreationFlags は、or で結ばれた一連のビットであり、以下の値を含むことができます。


意味

CREATE_SUSPENDED

スレッドは一時停止状態で作成され、Windows API の ResumeThread 関数が呼び出されるまで実行されません。 このフラグが含まれない場合には、新規スレッドは作成後すぐに実行を開始します。

STACK_SIZE_PARAM_IS_A_RESERVATION

StackSize パラメータでこのスレッドのスタック サイズを指定します。 このフラグが含まれない場合、新規スレッドにはリンク時にデフォルト サイズのスタックが割り当てられます。


BeginThread は、Windows スレッド ハンドルを返されます。 戻り値が 0 であれば、処理は失敗しています。

Attribute は、スレッドに関する情報(優先度、スケジューリング ポリシー、スタック サイズなど)を含む構造体です。


関連項目