AsyncCrossProcessMutex 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
비동기적으로 입력할 수 있는 뮤텍스입니다.
public class AsyncCrossProcessMutex : IDisposable
type AsyncCrossProcessMutex = class
interface IDisposable
Public Class AsyncCrossProcessMutex
Implements IDisposable
- 상속
-
AsyncCrossProcessMutex
- 구현
예제
using AsyncCrossProcessMutex mutex = new("Some-Unique Name"); using(await mutex. EnterAsync()) { // 동일한 명명된 뮤텍스로 보호되는 다른 스레드 또는 프로세스와 병렬로 실행해서는 안 되는 코드입니다. }
설명
이 클래스는 OS 뮤텍스 동기화 기본 형식을 활용합니다. 이 기본 형식은 기본적으로 스레드 선호도이며 뮤텍스를 소유할 스레드를 동기적으로 차단해야 합니다. 따라서 네이티브 뮤텍스는 비동기 메서드에서 사용하기에 적합하지 않습니다. 여기서 뮤텍스에 들어가는 스레드는 뮤텍스를 종료하는 스레드와 다를 수 있습니다. 이 클래스는 프라이빗 전용 스레드를 사용하여 뮤텍스를 입력하고 해제하여 문제를 해결하지만, 그렇지 않으면 소유자가 비동기 코드를 실행하고 스레드를 전환할 수 있습니다.
생성자
AsyncCrossProcessMutex(String) |
AsyncCrossProcessMutex 클래스의 새 인스턴스를 초기화합니다. |
속성
Name |
뮤텍스의 이름을 가져옵니다. |
메서드
Dispose() |
기본 네이티브 개체를 삭제합니다. |
EnterAsync() |
뮤텍스를 비동기적으로 획득합니다. |
EnterAsync(TimeSpan) |
뮤텍스를 비동기적으로 획득합니다. |
TryEnterAsync(TimeSpan) |
뮤텍스를 비동기적으로 획득하여 예외를 throw하지 않고 시간 제한을 허용합니다. |