System.SyncObjs.TEvent.Create
Delphi
constructor Create(EventAttributes: PSecurityAttributes; ManualReset, InitialState: Boolean; const Name: string; UseCOMWait: Boolean = False); overload;
constructor Create(UseCOMWait: Boolean = False); overload;
C++
__fastcall TEvent(Winapi::Windows::PSecurityAttributes EventAttributes, bool ManualReset, bool InitialState, const System::UnicodeString Name, bool UseCOMWait)/* overload */;
__fastcall TEvent(bool UseCOMWait)/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
constructor | public | System.SyncObjs.pas System.SyncObjs.hpp |
System.SyncObjs | TEvent |
説明
イベントオブジェクトを表す TEvent オブジェクトをインスタンス化します。
Create コンストラクタを呼び出すと,TEvent オブジェクトを作成できます。Create はイベントオブジェクトを新しく生成したり,既存の名前付きイベントオブジェクトへのアクセス権を提供したりします。
EventAttributes パラメータを設定すると,アクセス権を指定したり,新しいイベントオブジェクトに継承する機能を指定したりできます。EventAttributes を nil(Delphi)または NULL(C++)に設定して Create を呼び出すと,デフォルトのセキュリティ属性が設定されたイベントオブジェクトが作成されます。既存の名前付きイベントオブジェクトにアクセスするために TEvent オブジェクトを作成する場合は,EventAttributes の bInheritHandle 項目だけが使用されます。これはイベントオブジェクトが作成されたときにアクセス権がすでに決定されているからです。
ManualReset を設定すると,ResetEvent メソッドを呼び出したときにのみ TEvent オブジェクトのシグナル通知がオフになるようにするかどうか,あるいは 1 つの待ちスレッドが解放されたときにシグナル通知が自動的にリセットされるようにするかどうかを指定できます。ManualReset が true の場合,ResetEvent メソッドが TEvent のシグナル通知をオフにするまで,シグナル通知は設定されたままになります。ManualReset が false の場合,シグナル通知を待っているスレッドが 1 つだけで,そのスレッドが解放されたときにシグナル通知は自動的にオフになります。既存の名前付きイベントオブジェクトにアクセスするために TEvent オブジェクトを作成する場合は,ManualReset パラメータは無視されます。
InitialState を設定すると,シグナル通知を設定した状態とオフにした状態のどちらで TEvent オブジェクトを作成するかを指定できます。InitialState が true の場合,シグナル通知を設定した状態で TEvent オブジェクトが作成されます。既存の名前付きイベントオブジェクトにアクセスするために TEvent オブジェクトを作成する場合は,InitialState パラメータは無視されます。
Name を設定すると,新しいイベントオブジェクトに名前を提供したり,既存の名前付きイベントオブジェクトを指定したりできます。イベントオブジェクトにアクセスしてシグナル通知を待つスレッドや処理がない場合には,Name を空白にしておくこともできます。Name はバックスラッシュ記号(\)を含まない 260 字までの文字列です。Name で既存のイベントオブジェクトを指定する場合,Name の値は既存のイベントの名前と一致していなければなりません(大文字と小文字が区別されます)。Name が既存のセマフォ,ミューテックス,またはファイルマッピングオブジェクトの名前と一致した場合,Handle を 0 に設定した状態で TEvent オブジェクトが作成され,メソッドの呼び出しはすべて失敗します。