Freigeben über


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

using AsyncCrossProcessMutex mutex = new("Some-Unique Name"); using (warten Sie auf mutex. EnterAsync()) { // Code, der nicht parallel mit einem anderen Thread oder Prozess ausgeführt werden darf, der durch denselben Namen mutex geschützt wird. }

Hinweise

Diese Klasse verwendet das Primitive der Betriebssystem-Mutex-Synchronisierung, die grundsätzlich threadaffin ist und eine synchrone Blockierung des Threads erfordert, der den Mutex besitzt. Dadurch ist ein nativer Mutex für die Verwendung in asynchronen Methoden ungeeignet, wobei der Thread, der in den Mutex eintritt, möglicherweise nicht derselbe Thread ist, der ihn beendet. Diese Klasse löst dieses Problem, indem sie einen privaten dedizierten Thread zum Eingeben und Freigeben des Mutex verwendet, aber andernfalls ermöglicht es dem Besitzer, asynchronen Code auszuführen, Threads zu wechseln usw.

Konstruktoren

AsyncCrossProcessMutex(String)

Initialisiert eine neue Instanz der AsyncCrossProcessMutex-Klasse.

Eigenschaften

Name

Ruft den Namen des Mutex ab.

Methoden

Dispose()

Entsorgt die zugrunde liegenden nativen Objekte.

EnterAsync()

Ruft den Mutex asynchron ab.

EnterAsync(TimeSpan)

Ruft den Mutex asynchron ab.

TryEnterAsync(TimeSpan)

Ruft den Mutex asynchron ab, sodass Timeouts ohne Auslöser von Ausnahmen möglich sind.

Gilt für: