Partager via


AsyncCrossProcessMutex Classe

Définition

Mutex qui peut être entré de manière asynchrone.

public class AsyncCrossProcessMutex : IDisposable
type AsyncCrossProcessMutex = class
    interface IDisposable
Public Class AsyncCrossProcessMutex
Implements IDisposable
Héritage
AsyncCrossProcessMutex
Implémente

Exemples

using AsyncCrossProcessMutex mutex = new(« Some-Unique Name ») ; using (await mutex. EnterAsync()) { // Code qui ne doit pas s’exécuter en parallèle avec un autre thread ou processus protégé par le même mutex nommé. }

Remarques

Cette classe utilise la primitive de synchronisation mutex du système d’exploitation, qui est fondamentalement affiniténée avec le thread et nécessite le blocage synchrone du thread qui sera propriétaire du mutex. Cela rend un mutex natif inadapté à une utilisation dans les méthodes asynchrones, où le thread qui entre dans le mutex peut ne pas être le même thread qui le quitte. Cette classe résout ce problème en utilisant un thread dédié privé pour entrer et libérer le mutex, mais permet sinon à son propriétaire d’exécuter du code asynchrone, de changer de threads, etc.

Constructeurs

AsyncCrossProcessMutex(String)

Initialise une nouvelle instance de la classe AsyncCrossProcessMutex.

Propriétés

Name

Obtient le nom du mutex.

Méthodes

Dispose()

Supprime les objets natifs sous-jacents.

EnterAsync()

Acquiert le mutex de manière asynchrone.

EnterAsync(TimeSpan)

Acquiert le mutex de manière asynchrone.

TryEnterAsync(TimeSpan)

Acquiert le mutex de manière asynchrone, ce qui autorise les délais d’expiration sans lever d’exceptions.

S’applique à