AsyncCrossProcessMutex Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |