System.SyncObjs.TMutex.Create
Delphi
constructor Create(UseCOMWait: Boolean = False); overload;
constructor Create(MutexAttributes: PSecurityAttributes; InitialOwner: Boolean; const Name: string; UseCOMWait: Boolean = False); overload;
constructor Create(DesiredAccess: Cardinal; InheritHandle: Boolean; const Name: string; UseCOMWait: Boolean = False); overload;
C++
__fastcall TMutex(bool UseCOMWait)/* overload */;
__fastcall TMutex(Winapi::Windows::PSecurityAttributes MutexAttributes, bool InitialOwner, const System::UnicodeString Name, bool UseCOMWait)/* overload */;
__fastcall TMutex(unsigned DesiredAccess, bool InheritHandle, const System::UnicodeString Name, bool UseCOMWait)/* overload */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
constructor | public | System.SyncObjs.pas System.SyncObjs.hpp |
System.SyncObjs | TMutex |
説明
TMutex オブジェクトをインスタンス化します。
Create を呼び出すと、TMutex オブジェクトを作成することができます。
第 1 のコンストラクタでは、デフォルトのセキュリティ ディスクリプタを用いる無名ミューテックスを作成し、そのミューテックスを作成したスレッドがミューテックスの初期オーナーにならないように設定します。 UseCOMWait パラメータを設定すると、スレッドがブロックされてオブジェクトを待っているときでも、任意の STA COM 呼び出しを逆にこのスレッドに対して行うことができます。
第 2 のコンストラクタでは、以下のパラメータ リストに示されたいくつかの属性を持つ名前付きミューテックスを作成します。
パラメータ |
意味 |
MutexAttributes |
ミューテックスのセキュリティ属性です。 MutexAttributes は _SECURITY_ATTRIBUTES レコードへのポインタ型であり、nLength、lpSecurityDescriptor、InheritHandle の各フィールドを持っています。 nLength フィールドは、_SECURITY_ATTRIBUTES レコードのサイズ(バイト単位)と必ず等しくなければなりません。 lpSecurityDescriptor は、ミューテックスのセキュリティ ディスクリプタへのポインタです。 最後の InheritHandle は、ミューテックスのハンドルを子プロセスに継承させる場合に True になります。 |
InitialOwner |
これを設定すると、このミューテックスを作成したスレッドはミューテックスの初期オーナーとみなされます。 |
名前 |
ミューテックスの名前です。 名前は大文字/小文字が区別されます。 |
UseCOMWait |
このパラメータを設定すると、スレッドがブロックされてオブジェクトを待っているときでも、任意の STA COM 呼び出しを逆にこのスレッドに対して行うことができます。 |
第 3 のコンストラクタでは、名前を指定して既存のミューテックスを開くことができます。 各パラメータの意味は以下のとおりです。
パラメータ |
意味 |
DesiredAccess |
ミューテックスに対するアクセスの種類です。 要求した種類のアクセスが許可されなかった場合、コンストラクタは失敗します。 MUTEX_ALL_ACCESS、MUTEX_MODIFY_STATE、SYNCHRONIZE、_DELETE、READ_CONTROL、WRITE_DAC、WRITE_OWNER という定数を任意に組み合わせて指定できます。 SYNCHRONIZE アクセス権はミューテックス固有のものであるため、どの組み合わせにも含めなければなりません。 |
InheritHandle |
このパラメータを設定すると、子プロセスはミューテックス ハンドルを継承します。 |
名前 |
開くミューテックスの名前です。 名前は大文字/小文字が区別されます。 |
UseCOMWait |
このパラメータを設定すると、スレッドがブロックされてオブジェクトを待っているときでも、任意の STA COM 呼び出しを逆にこのスレッドに対して行うことができます。 |