다음을 통해 공유


Mutex.TryOpenExisting 메서드

정의

지정된 명명된 mutex(이미 존재하는 경우)를 열고 작업이 성공적으로 수행되었는지를 나타내는 값을 반환합니다.

오버로드

TryOpenExisting(String, Mutex)

지정한 명명된 뮤텍스(이미 존재하는 경우)를 열고 작업이 수행되었는지를 나타내는 값을 반환합니다.

TryOpenExisting(String, MutexRights, Mutex)

지정된 명명된 뮤텍스를 원하는 보안 액세스 상태에서 열고 작업이 수행되었는지를 나타내는 값을 반환합니다.

TryOpenExisting(String, Mutex)

Source:
Mutex.cs
Source:
Mutex.cs
Source:
Mutex.cs

지정한 명명된 뮤텍스(이미 존재하는 경우)를 열고 작업이 수행되었는지를 나타내는 값을 반환합니다.

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);
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자)보다 깁니다.

name이(가) null인 경우.

name이 잘못되었습니다. 이유는 다양하며, 대표적인 이유는 운영 체제가 적용하는 일부 제한(예: 알 수 없는 접두사나 잘못된 문자)입니다. 이름 및 일반 접두사 "Global\" 및 "Local\"은 대/소문자를 구분합니다. 일부 잘못된 이름에 대해 메서드에서는 false를 반환합니다.

-또는-

다른 오류가 발생했습니다. HResult 속성에서 자세한 정보를 확인할 수 있습니다.

name이 너무 깁니다. 길이 제한은 운영 체제나 구성에 따라 달라집니다.

명명된 뮤텍스가 있으나 사용자에게 이를 사용하는 데 필요한 보안 액세스 권한이 없는 경우

설명

name 접두사를 추가 Global\ 하거나 Local\ 네임스페이스를 지정할 수 있습니다. 네임스페이 Global 스를 지정하면 동기화 개체를 시스템의 모든 프로세스와 공유할 수 있습니다. Local 네임스페이스를 지정하면 네임스페이스가 지정되지 않은 경우에도 기본값이 되며, 동기화 개체를 동일한 세션의 프로세스와 공유할 수 있습니다. Windows에서 세션은 로그인 세션이며 서비스는 일반적으로 다른 비대화형 세션에서 실행됩니다. Unix와 유사한 운영 체제에서 각 셸에는 자체 세션이 있습니다. 세션-로컬 동기화 개체는 모두 동일한 세션에서 실행되는 부모/자식 관계와 프로세스 간의 동기화에 적합할 수 있습니다. Windows의 동기화 개체 이름에 대한 자세한 내용은 개체 이름을 참조하세요.

요청된 형식의 동기화 개체가 네임스페이스에 있으면 기존 동기화 개체가 열립니다. 네임스페이스에 동기화 개체가 없거나 다른 형식의 동기화 개체가 네임스페이스에 false 있는 경우 가 반환됩니다.

시스템 뮤텍스가 아직 없는 경우 만들려면 매개 변수가 Mutex 있는 name 생성자 중 하나를 사용합니다.

명명된 뮤텍스가 있는지 확실하지 않은 경우 메서드 오버로드 대신 OpenExisting(String) 이 메서드 오버로드를 사용하여 뮤텍스가 없는 경우 예외를 throw합니다.

반환되는 개체가 동일한 명명된 시스템 뮤텍스를 나타내더라도 동일한 값을 사용하는 이 메서드에 대한 name 여러 호출이 반드시 동일한 Mutex 개체를 반환하지는 않습니다.

이 메서드 오버로드는 메서드 오버로드를 호출 TryOpenExisting(String, MutexRights, Mutex) 하고 비트 OR 연산을 사용하여 결합된 및 MutexRights.Modify 권한을 지정하는 MutexRights.Synchronize 것과 같습니다. 플래그를 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자)보다 깁니다.

name이(가) null인 경우.

name이 잘못되었습니다. 이유는 다양하며, 대표적인 이유는 운영 체제가 적용하는 일부 제한(예: 알 수 없는 접두사나 잘못된 문자)입니다. 이름 및 일반 접두사 "Global\" 및 "Local\"은 대/소문자를 구분합니다. 일부 잘못된 이름에 대해 메서드에서는 false를 반환합니다.

-또는-

다른 오류가 발생했습니다. HResult 속성에서 자세한 정보를 확인할 수 있습니다.

name이 너무 깁니다. 길이 제한은 운영 체제나 구성에 따라 달라집니다.

명명된 뮤텍스가 있으나 사용자에게 이를 사용하는 데 필요한 보안 액세스 권한이 없는 경우

설명

name 접두사를 추가 Global\ 하거나 Local\ 네임스페이스를 지정할 수 있습니다. 네임스페이 Global 스를 지정하면 동기화 개체를 시스템의 모든 프로세스와 공유할 수 있습니다. Local 네임스페이스를 지정하면 네임스페이스가 지정되지 않은 경우에도 기본값이 되며, 동기화 개체를 동일한 세션의 프로세스와 공유할 수 있습니다. Windows에서 세션은 로그인 세션이며 서비스는 일반적으로 다른 비대화형 세션에서 실행됩니다. Unix와 유사한 운영 체제에서 각 셸에는 자체 세션이 있습니다. 세션-로컬 동기화 개체는 모두 동일한 세션에서 실행되는 부모/자식 관계와 프로세스 간의 동기화에 적합할 수 있습니다. Windows의 동기화 개체 이름에 대한 자세한 내용은 개체 이름을 참조하세요.

요청된 형식의 동기화 개체가 네임스페이스에 있으면 기존 동기화 개체가 열립니다. 네임스페이스에 동기화 개체가 없거나 다른 형식의 동기화 개체가 네임스페이스에 false 있는 경우 가 반환됩니다.

시스템 뮤텍스가 아직 없는 경우 만들려면 매개 변수가 Mutex 있는 name 생성자 중 하나를 사용합니다.

명명된 뮤텍스가 있는지 확실하지 않은 경우 메서드 오버로드 대신 OpenExisting(String, MutexRights) 이 메서드 오버로드를 사용하여 뮤텍스가 없는 경우 예외를 throw합니다.

매개 변수에는 rights 스레드가 MutexRights.Synchronize 뮤텍스에서 대기할 수 있도록 하는 플래그와 MutexRights.Modify 스레드가 메서드를 호출할 수 있도록 하는 플래그가 ReleaseMutex 포함되어야 합니다.

반환되는 개체가 동일한 명명된 시스템 뮤텍스를 나타내더라도 동일한 값을 사용하는 이 메서드에 대한 name 여러 호출이 반드시 동일한 Mutex 개체를 반환하지는 않습니다.

이 메서드는 뮤텍스의 소유권을 요청하지 않습니다.

적용 대상