EventWaitHandle.TryOpenExisting メソッド

定義

既に存在する場合は、指定した名前付き同期イベントを開き操作が成功したかどうかを示す値を返します。

オーバーロード

TryOpenExisting(String, EventWaitHandle)

既に存在する場合は、指定した名前付き同期イベントを開き操作が成功したかどうかを示す値を返します。

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

既に存在する場合は、必要なセキュリティ アクセスを使って指定した名前付き同期イベントを開き、操作が成功したかどうかを示す値を返します。

TryOpenExisting(String, EventWaitHandle)

ソース:
EventWaitHandle.cs
ソース:
EventWaitHandle.cs
ソース:
EventWaitHandle.cs

既に存在する場合は、指定した名前付き同期イベントを開き操作が成功したかどうかを示す値を返します。

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

パラメーター

name
String

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

result
EventWaitHandle

このメソッドから制御が戻るときに、呼び出しに成功した場合は名前付き同期イベントを表す EventWaitHandle オブジェクトが格納されます。呼び出しに失敗した場合は 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 での同期オブジェクト名の詳細については、「 オブジェクト名」を参照してください。

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

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

名前付き同期イベントが存在するかどうか不明な場合は、同期イベントが存在しない場合に例外を OpenExisting(String) スローするメソッド オーバーロードの代わりに、このメソッド オーバーロードを使用します。

このメソッド オーバーロードは、メソッド オーバーロードを TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) 呼び出し、ビットごとの OR 演算を EventWaitHandleRights.Synchronize 使用して結合された および EventWaitHandleRights.Modify 権限を指定することと同じです。 フラグをEventWaitHandleRights.Synchronize指定すると、スレッドは名前付きシステム イベントを待機でき、フラグをEventWaitHandleRights.Modify指定するとスレッドは メソッドと Reset メソッドを呼び出Setすことができます。

に同じ値 name を使用するこのメソッドを複数回呼び出しても、同じ EventWaitHandle オブジェクトが返されるとは限りません。ただし、返されるオブジェクトは同じ名前付きシステム イベントを表します。

適用対象

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

既に存在する場合は、必要なセキュリティ アクセスを使って指定した名前付き同期イベントを開き、操作が成功したかどうかを示す値を返します。

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

パラメーター

name
String

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

rights
EventWaitHandleRights

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

result
EventWaitHandle

このメソッドから制御が戻るときに、呼び出しに成功した場合は名前付き同期イベントを表す EventWaitHandle オブジェクトが格納されます。呼び出しに失敗した場合は 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 での同期オブジェクト名の詳細については、「 オブジェクト名」を参照してください。

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

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

名前付き同期イベントが存在するかどうか不明な場合は、同期イベントが存在しない場合に例外を OpenExisting(String, EventWaitHandleRights) スローするメソッド オーバーロードの代わりに、このメソッド オーバーロードを使用します。

パラメーターにはrights、スレッドがイベントをEventWaitHandleRights.Synchronize待機できるようにするフラグと、 および メソッドをEventWaitHandleRights.Modify呼び出せるようにするフラグをSetReset含める必要があります。

に同じ値 name を使用するこのメソッドを複数回呼び出しても、同じ EventWaitHandle オブジェクトが返されるとは限りません。ただし、返されるオブジェクトは同じ名前付きシステム イベントを表します。

適用対象