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
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. |