AsyncCrossProcessMutex Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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. |