API:Data.DBXPlatform.TDBXSemaphore.Create

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

Delphi

constructor Create(Count: Integer);

C++

__fastcall TDBXSemaphore(int Count);

プロパティ

種類 可視性 ソース ユニット
constructor public
Data.DBXPlatform.pas
Data.DBXPlatform.hpp
Data.DBXPlatform TDBXSemaphore

説明

TSemaphore オブジェクトをインスタンス化します。

Data.DBXPlatform.TDBXSemaphore.Create は System.SyncObjs.TSemaphore.Create を継承しています。以下の内容はすべて System.SyncObjs.TSemaphore.Create を参照しています。

TSemaphore オブジェクトをインスタンス化します。

Create を呼び出すと、TSemaphore オブジェクトを作成することができます。

第 1 のコンストラクタでは、カウンタの初期値が 1 である無名のバイナリ セマフォを作成します。また、このセマフォは、デフォルトのセキュリティ記述子を用いるものとして作成されます。つまり、現在のプロセスの子プロセスは、このセマフォのハンドルを継承できないことになります。これは基本的に、無名の TMutex オブジェクトを生成するのと同等です。UseCOMWait パラメータを設定すると、スレッドがブロックされてオブジェクトを待っているときでも、任意の STA(シングル スレッド アパートメント)COM 呼び出しを逆にこのスレッドに対して行うことができます。

第 2 のコンストラクタでは、名前を指定して既存のセマフォを開くことができます。各パラメータの意味は以下のとおりです。


パラメータ

意味

DesiredAccess

セマフォに対するアクセスの種類です。要求した種類のアクセスが許可されなかった場合、コンストラクタは失敗します。SEMAPHORE_ALL_ACCESSSEMAPHORE_MODIFY_STATESYNCHRONIZE_DELETEREAD_CONTROLWRITE_DACWRITE_OWNER の定数を任意に組み合わせて指定できます。

InheritHandle

このパラメータを設定すると、子プロセスはハンドルを継承します。

Name

開くセマフォの名前です。名前は大文字/小文字が区別されます。

UseCOMWait

このパラメータを設定すると、スレッドがブロックされてオブジェクトを待っているときでも、任意の STA COM 呼び出しを逆にこのスレッドに対して行うことができます。



第 3 のコンストラクタでは、以下のパラメータ リストに示されたいくつかの属性を持つ名前付きセマフォを作成します。


パラメータ

意味

SemaphoreAttributes

セマフォのセキュリティ属性です。SemaphoreAttributes_SECURITY_ATTRIBUTES レコードへのポインタ型であり、nLengthlpSecurityDescriptorInheritHandle の各フィールドを持っています。

nLength フィールドは、_SECURITY_ATTRIBUTES レコードのサイズ(バイト単位)と必ず等しくなければなりません。lpSecurityDescriptor は、セマフォのセキュリティ記述子へのポインタです。最後の InheritHandle は、セマフォのハンドルを子プロセスに継承させる場合に True になります。

AInitialCount

セマフォ カウンタ変数の初期値で、共有リソースの未使用ユニットの初期数を示します。

AMaximumCount

セマフォ カウンタ変数の最大値で、共有リソースの使用可能ユニットの数を示します。

Name

セマフォの名前です。名前は大文字/小文字が区別されます。

UseCOMWait

このパラメータを設定すると、スレッドがブロックされてオブジェクトを待っているときでも、任意の STA COM 呼び出しを逆にこのスレッドに対して行うことができます。



関連項目