Sprache

AsyncCrossProcessMutex Klasse

Definition

Ein Mutex, der asynchron eingegeben werden kann.

public class AsyncCrossProcessMutex : IDisposable
type AsyncCrossProcessMutex = class
    interface IDisposable
Public Class AsyncCrossProcessMutex
Implements IDisposable
Vererbung
AsyncCrossProcessMutex
Implementiert

Beispiele

verwenden von AsyncCrossProcessMutex mutex = new("Some-Unique Name"); verwenden (await mutex. EnterAsync()) { // Code, der nicht parallel mit einem anderen Thread oder Prozess ausgeführt werden darf, der durch denselben benannten Mutex geschützt ist. }

Hinweise

Diese Klasse verwendet den Grundtyp der Os mutex-Synchronisierung, der im Grunde threadaffiniert ist und das synchrone Blockieren des Threads erfordert, der dem Mutex gehört. Dies macht einen nativen Mutex ungeeignet für die Verwendung in asynchronen Methoden, wobei der Thread, der den Mutex eingibt, möglicherweise nicht derselbe Thread ist, der sie beendet. Diese Klasse löst dieses Problem mithilfe eines privaten dedizierten Threads, um den Mutex einzugeben und freizugeben. Andernfalls kann der Besitzer asynchronen Code ausführen, Threads wechseln usw.

Konstruktoren

Name Beschreibung
AsyncCrossProcessMutex(String)

Initialisiert eine neue Instanz der AsyncCrossProcessMutex-Klasse.

Eigenschaften

Name Beschreibung
Name

Ruft den Namen des Mutex ab.

Methoden

Name Beschreibung
Dispose()

Entfernt die zugrunde liegenden systemeigenen Objekte.

EnterAsync()

Ruft das Mutex asynchron ab.

EnterAsync(TimeSpan)

Ruft das Mutex asynchron ab.

TryEnterAsync(TimeSpan)

Ruft das Mutex asynchron ab, sodass Timeouts ohne Ausnahmen ausgelöst werden können.

Gilt für: