Semaphore.TryOpenExisting メソッド

定義

既に存在する場合は、指定した名前付きセマフォを開き操作が成功したかどうかを示す値を返します。Opens a specified named semaphore, if it already exists, and returns a value that indicates whether the operation succeeded.

オーバーロード

TryOpenExisting(String, Semaphore)

既に存在する場合は、指定した名前付きセマフォを開き操作が成功したかどうかを示す値を返します。Opens the specified named semaphore, if it already exists, and returns a value that indicates whether the operation succeeded.

TryOpenExisting(String, SemaphoreRights, Semaphore)

既に存在する場合は、必要なセキュリティ アクセスを使って指定した名前付きセマフォを開き、操作が成功したかどうかを示す値を返します。Opens the specified named semaphore, if it already exists, with the desired security access, and returns a value that indicates whether the operation succeeded.

TryOpenExisting(String, Semaphore)

既に存在する場合は、指定した名前付きセマフォを開き操作が成功したかどうかを示す値を返します。Opens the specified named semaphore, if it already exists, and returns a value that indicates whether the operation succeeded.

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

パラメーター

name
String

セマフォの名前。The name of the semaphore. 先頭に "Global" が付いている場合は、コンピューター全体のセマフォを参照します。If it's prefixed by "Global", it refers to a machine-wide semaphore. 先頭に "Local" が付いているか、プレフィックスがない場合は、セッション全体のセマフォを参照します。If it's prefixed by "Local" or doesn't have a prefix, it refers to a session-wide semaphore. プレフィックスと名前はどちらも、大文字と小文字が区別されます。Both prefix and name are case-sensitive.

result
Semaphore

このメソッドから制御が戻るときに、呼び出しに成功した場合は名前付きセマフォを表す Semaphore オブジェクトが格納されます。呼び出しに失敗した場合は null が格納されます。When this method returns, contains a Semaphore object that represents the named semaphore if the call succeeded, or null if the call failed. このパラメーターは初期化前として処理されます。This parameter is treated as uninitialized.

戻り値

Boolean

名前付きのセマフォが正常に開かれた場合は true。それ以外の場合は falsetrue if the named semaphore was opened successfully; otherwise, false.

例外

name が空の文字列です。name is an empty string.

- または --or- name が 260 文字を超えています。name is longer than 260 characters.

namenullです。name is null.

Win32 エラーが発生しました。A Win32 error occurred.

名前付きセマフォは存在しますが、それを使用するために必要なセキュリティ アクセスがユーザーにありません。The named semaphore exists, but the user does not have the security access required to use it.

注釈

名前付きセマフォが存在しない場合、このメソッドはそれを作成しません。If the named semaphore does not exist, this method does not create it. システムセマフォがまだ存在しない場合に作成するには、パラメーターを持つコンストラクターのいずれかを使用し Semaphore name ます。To create the system semaphore when it does not already exist, use one of the Semaphore constructors that has a name parameter.

名前付きセマフォが存在するかどうかが不明な場合は、メソッドオーバーロードではなく、このメソッドオーバーロードを使用します。これにより、セマフォが存在しない OpenExisting(String) 場合に例外がスローされます。If you are uncertain whether a named semaphore exists, use this method overload instead of the OpenExisting(String) method overload, which throws an exception if the semaphore does not exist.

このメソッドのオーバーロードは、メソッドのオーバーロードを呼び出し、and 権限を指定して、 TryOpenExisting SemaphoreRights.Synchronize ビットごとの or 演算を使用して組み合わせたものです SemaphoreRights.ModifyThis method overload is equivalent to calling the TryOpenExisting method overload and specifying SemaphoreRights.Synchronize and SemaphoreRights.Modify rights, combined by using the bitwise OR operation. フラグを指定する SemaphoreRights.Synchronize と、スレッドはセマフォに入ることができ、フラグを指定すると、 SemaphoreRights.Modify スレッドはメソッドを呼び出すことができ Release ます。Specifying the SemaphoreRights.Synchronize flag allows a thread to enter the semaphore, and specifying the SemaphoreRights.Modify flag allows a thread to call the Release method.

適用対象

製品 Introduced

TryOpenExisting(String, SemaphoreRights, Semaphore)

既に存在する場合は、必要なセキュリティ アクセスを使って指定した名前付きセマフォを開き、操作が成功したかどうかを示す値を返します。Opens the specified named semaphore, if it already exists, with the desired security access, and returns a value that indicates whether the operation succeeded.

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

パラメーター

name
String

セマフォの名前。The name of the semaphore. 先頭に "Global" が付いている場合は、コンピューター全体のセマフォを参照します。If it's prefixed by "Global", it refers to a machine-wide semaphore. 先頭に "Local" が付いているか、プレフィックスがない場合は、セッション全体のセマフォを参照します。If it's prefixed by "Local" or doesn't have a prefix, it refers to a session-wide semaphore. プレフィックスと名前はどちらも、大文字と小文字が区別されます。Both prefix and name are case-sensitive.

rights
SemaphoreRights

必要なセキュリティ アクセス権を表す列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that represent the desired security access.

result
Semaphore

このメソッドから制御が戻るときに、呼び出しに成功した場合は名前付きセマフォを表す Semaphore オブジェクトが格納されます。呼び出しに失敗した場合は null が格納されます。When this method returns, contains a Semaphore object that represents the named semaphore if the call succeeded, or null if the call failed. このパラメーターは初期化前として処理されます。This parameter is treated as uninitialized.

戻り値

Boolean

名前付きのセマフォが正常に開かれた場合は true。それ以外の場合は falsetrue if the named semaphore was opened successfully; otherwise, false.

例外

name が空の文字列です。name is an empty string.

- または --or- name が 260 文字を超えています。name is longer than 260 characters.

namenullです。name is null.

Win32 エラーが発生しました。A Win32 error occurred.

名前付きセマフォは存在しますが、それを使用するために必要なセキュリティ アクセスがユーザーにありません。The named semaphore exists, but the user does not have the security access required to use it.

注釈

名前付きセマフォが存在しない場合、このメソッドはそれを作成しません。If the named semaphore does not exist, this method does not create it. システムセマフォがまだ存在しない場合に作成するには、パラメーターを持つコンストラクターのいずれかを使用し Semaphore name ます。To create the system semaphore when it does not already exist, use one of the Semaphore constructors that has a name parameter.

名前付きセマフォが存在するかどうかが不明な場合は、メソッドオーバーロードではなく、このメソッドオーバーロードを使用します。これにより、セマフォが存在しない OpenExisting(String, SemaphoreRights) 場合に例外がスローされます。If you are uncertain whether a named semaphore exists, use this method overload instead of the OpenExisting(String, SemaphoreRights) method overload, which throws an exception if the semaphore does not exist.

パラメーターには、 rights SemaphoreRights.Synchronize スレッドがセマフォに入ることを許可するフラグと、 SemaphoreRights.Modify スレッドがメソッドを呼び出すことを許可するフラグを含める必要があり Release ます。The rights parameter must include the SemaphoreRights.Synchronize flag to allow threads to enter the semaphore, and the SemaphoreRights.Modify flag to allow threads to call the Release method.

の同じ値を使用するこのメソッドの複数の呼び出しでは、 name 返される Semaphore オブジェクトが同じ名前付きシステムセマフォを表す場合でも、必ずしも同じオブジェクトを返すとは限りません。Multiple calls to this method that use the same value for name do not necessarily return the same Semaphore object, even though the objects that are returned represent the same named system semaphore.

適用対象

製品 Introduced