Mutex.TryOpenExisting メソッド

定義

既に存在する場合は、指定した名前付きミューテックスを開き、操作が成功したかどうかを示す値を返します。

オーバーロード

名前 説明
TryOpenExisting(String, Mutex)

指定した名前付きミューテックスが既に存在する場合は開き、操作が成功したかどうかを示す値を返します。

TryOpenExisting(String, MutexRights, Mutex)

指定した名前付きミューテックスが既に存在する場合は、目的のセキュリティ アクセスを使用して開き、操作が成功したかどうかを示す値を返します。

TryOpenExisting(String, Mutex)

指定した名前付きミューテックスが既に存在する場合は開き、操作が成功したかどうかを示す値を返します。

public:
 static bool TryOpenExisting(System::String ^ name, [Runtime::InteropServices::Out] System::Threading::Mutex ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, out System.Threading.Mutex result);
public static bool TryOpenExisting(string name, out System.Threading.Mutex result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * Mutex -> bool
static member TryOpenExisting : string * Mutex -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As Mutex) As Boolean

パラメーター

name
String

他のプロセスと共有する同期オブジェクトの名前。 名前では大文字と小文字が区別されます。 円記号 (\) は予約されており、名前空間の指定にのみ使用できます。 名前空間の詳細については、「解説」セクションを参照してください。 オペレーティング システムによっては、名前にさらに制限がある場合があります。 たとえば、Unix ベースのオペレーティング システムでは、名前空間を除外した後の名前は有効なファイル名である必要があります。

result
Mutex

このメソッドから制御が戻るときに、呼び出しが成功した場合に名前付きミューテックスを表す Mutex オブジェクト、または呼び出しが失敗した場合に null を格納します。 このパラメーターは、初期化されていないものとして扱われます。

返品

true 名前付きミューテックスが正常に開かれた場合。それ以外の場合は false。 場合によっては、 false が無効な名前で返されることがあります。

属性

例外

name は空の文字列です。

-または-

.NET Framework のみ: name がMAX_PATH (260 文字) より長くなっています。

namenullです。

name が無効です。 これは、不明なプレフィックスや無効な文字など、オペレーティング システムによって適用される可能性のあるいくつかの制限など、さまざまな理由で発生する可能性があります。 名前と共通プレフィックス "Global\" と "Local\" では大文字と小文字が区別されることに注意してください。 無効な名前の場合、メソッドは代わりに false を返す場合があります。

-または-

その他のエラーが発生しました。 HResultプロパティは、詳細情報を提供する場合があります。

name は長すぎます。 長さの制限は、オペレーティング システムまたは構成によって異なります。

名前付きミューテックスは存在しますが、ユーザーはミューテックスを使用するために必要なセキュリティ アクセス権を持っていません。

注釈

nameには、名前空間を指定するために、Global\またはLocal\のプレフィックスを付ける場合があります。 Global名前空間を指定すると、同期オブジェクトをシステム上の任意のプロセスと共有できます。 Local名前空間が指定されている場合(名前空間が指定されていない場合の既定値)、同期オブジェクトを同じセッション内のプロセスと共有できます。 Windowsでは、セッションはログイン セッションであり、サービスは通常、別の非対話型セッションで実行されます。 Unix に似たオペレーティング システムでは、各シェルに独自のセッションがあります。 セッションとローカルの同期オブジェクトは、プロセス間の同期に適している場合があります。このオブジェクトはすべて同じセッションで実行されます。 Windowsの同期オブジェクト名の詳細については、「Object Names」を参照してください。

要求された型の同期オブジェクトが名前空間に存在する場合は、既存の同期オブジェクトが開かれます。 名前空間に同期オブジェクトが存在しない場合、または別の型の同期オブジェクトが名前空間に存在する場合は、 false が返されます。

システム ミューテックスがまだ存在しない場合に作成するには、name パラメーターを持つ Mutex コンストラクターのいずれかを使用します。

名前付きミューテックスが存在するかどうかわからない場合は、ミューテックスが存在しない場合に例外をスローする OpenExisting(String) メソッド オーバーロードの代わりに、このメソッド オーバーロードを使用します。

nameに同じ値を使用するこのメソッドを複数回呼び出しても、返されるオブジェクトが同じ名前付きシステム ミューテックスを表していても、必ずしも同じMutex オブジェクトを返すわけではありません。

このメソッド オーバーロードは、 TryOpenExisting(String, MutexRights, Mutex) メソッドオーバーロードを呼び出し、ビットごとの OR 演算を使用して結合された MutexRights.Synchronize 権限と MutexRights.Modify 権限を指定することと同じです。 MutexRights.Synchronize フラグを指定すると、スレッドはミューテックスを待機でき、MutexRights.Modify フラグを指定すると、スレッドは ReleaseMutex メソッドを呼び出すことができます。

このメソッドはミューテックスの所有権を要求しません。

適用対象

TryOpenExisting(String, MutexRights, Mutex)

指定した名前付きミューテックスが既に存在する場合は、目的のセキュリティ アクセスを使用して開き、操作が成功したかどうかを示す値を返します。

public:
 static bool TryOpenExisting(System::String ^ name, System::Security::AccessControl::MutexRights rights, [Runtime::InteropServices::Out] System::Threading::Mutex ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, System.Security.AccessControl.MutexRights rights, out System.Threading.Mutex result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * System.Security.AccessControl.MutexRights * Mutex -> bool
Public Shared Function TryOpenExisting (name As String, rights As MutexRights, ByRef result As Mutex) As Boolean

パラメーター

name
String

他のプロセスと共有する同期オブジェクトの名前。 名前では大文字と小文字が区別されます。 円記号 (\) は予約されており、名前空間の指定にのみ使用できます。 名前空間の詳細については、「解説」セクションを参照してください。 オペレーティング システムによっては、名前にさらに制限がある場合があります。 たとえば、Unix ベースのオペレーティング システムでは、名前空間を除外した後の名前は有効なファイル名である必要があります。

rights
MutexRights

目的のセキュリティ アクセスを表す列挙値のビットごとの組み合わせ。

result
Mutex

このメソッドから制御が戻るときに、呼び出しが成功した場合に名前付きミューテックスを表す Mutex オブジェクト、または呼び出しが失敗した場合に null を格納します。 このパラメーターは、初期化されていないものとして扱われます。

返品

true 名前付きミューテックスが正常に開かれた場合。それ以外の場合は false。 場合によっては、 false が無効な名前で返されることがあります。

属性

例外

name は空の文字列です。

-または-

.NET Framework のみ: name がMAX_PATH (260 文字) より長くなっています。

namenullです。

name が無効です。 これは、不明なプレフィックスや無効な文字など、オペレーティング システムによって適用される可能性のあるいくつかの制限など、さまざまな理由で発生する可能性があります。 名前と共通プレフィックス "Global\" と "Local\" では大文字と小文字が区別されることに注意してください。 無効な名前の場合、メソッドは代わりに false を返す場合があります。

-または-

その他のエラーが発生しました。 HResultプロパティは、詳細情報を提供する場合があります。

name は長すぎます。 長さの制限は、オペレーティング システムまたは構成によって異なります。

名前付きミューテックスは存在しますが、ユーザーはミューテックスを使用するために必要なセキュリティ アクセス権を持っていません。

注釈

nameには、名前空間を指定するために、Global\またはLocal\のプレフィックスを付ける場合があります。 Global名前空間を指定すると、同期オブジェクトをシステム上の任意のプロセスと共有できます。 Local名前空間が指定されている場合(名前空間が指定されていない場合の既定値)、同期オブジェクトを同じセッション内のプロセスと共有できます。 Windowsでは、セッションはログイン セッションであり、サービスは通常、別の非対話型セッションで実行されます。 Unix に似たオペレーティング システムでは、各シェルに独自のセッションがあります。 セッションとローカルの同期オブジェクトは、プロセス間の同期に適している場合があります。このオブジェクトはすべて同じセッションで実行されます。 Windowsの同期オブジェクト名の詳細については、「Object Names」を参照してください。

要求された型の同期オブジェクトが名前空間に存在する場合は、既存の同期オブジェクトが開かれます。 名前空間に同期オブジェクトが存在しない場合、または別の型の同期オブジェクトが名前空間に存在する場合は、 false が返されます。

システム ミューテックスがまだ存在しない場合に作成するには、name パラメーターを持つ Mutex コンストラクターのいずれかを使用します。

名前付きミューテックスが存在するかどうかわからない場合は、ミューテックスが存在しない場合に例外をスローする OpenExisting(String, MutexRights) メソッド オーバーロードの代わりに、このメソッド オーバーロードを使用します。

rights パラメーターには、スレッドがミューテックスを待機できるようにするための MutexRights.Synchronize フラグと、スレッドが ReleaseMutex メソッドを呼び出すことができるようにする MutexRights.Modify フラグを含める必要があります。

nameに同じ値を使用するこのメソッドを複数回呼び出しても、返されるオブジェクトが同じ名前付きシステム ミューテックスを表していても、必ずしも同じMutex オブジェクトを返すわけではありません。

このメソッドはミューテックスの所有権を要求しません。

適用対象