다음을 통해 공유


AsyncCrossProcessMutex 클래스

정의

비동기적으로 입력할 수 있는 뮤텍스입니다.

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하지 않고 시간 제한을 허용합니다.

적용 대상