Partager via


AsyncReaderWriterResourceLock<TMoniker,TResource> Classe

Définition

Verrou non bloquant qui permet l'accès simultané, l'accès exclusif ou l'accès simultané pouvant être mis à niveau vers l'accès exclusif, avec des allocations spéciales pour les ressources qui doivent être préparées pour l'accès simultané ou exclusif.

generic <typename TMoniker, typename TResource>
 where TResource : classpublic ref class AsyncReaderWriterResourceLock abstract : Microsoft::VisualStudio::Threading::AsyncReaderWriterLock
public abstract class AsyncReaderWriterResourceLock<TMoniker,TResource> : Microsoft.VisualStudio.Threading.AsyncReaderWriterLock where TResource : class
type AsyncReaderWriterResourceLock<'Moniker, 'Resource (requires 'Resource : null)> = class
    inherit AsyncReaderWriterLock
Public MustInherit Class AsyncReaderWriterResourceLock(Of TMoniker, TResource)
Inherits AsyncReaderWriterLock

Paramètres de type

TMoniker

Type du moniker qui identifie une ressource.

TResource

Type de ressource émise pour l’accès par ce verrou.

Héritage
AsyncReaderWriterResourceLock<TMoniker,TResource>

Constructeurs

AsyncReaderWriterResourceLock<TMoniker,TResource>()

Initialise une nouvelle instance de la classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

Initialise une nouvelle instance de la classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

Initialise une nouvelle instance de la classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

Propriétés

AmbientLock

Obtient le verrou géré par le contexte d'exécution de l'appelant.

(Hérité de AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

Obtient une valeur indiquant si le thread actuel est autorisé à contenir un verrou actif.

(Hérité de AsyncReaderWriterLock)
CaptureDiagnostics

Obtient ou définit une valeur indiquant si des ressources supplémentaires doivent être dépensées pour collecter des informations utiles dans le diagnostic des interblocages, etc.

(Hérité de AsyncReaderWriterLock)
Completion

Obtient une tâche dont l'achèvement signale que ce verrouillage n'émet plus de verrous.

(Hérité de AsyncReaderWriterLock)
DeadlockCheckTimeout

Obtient un délai pour case activée si le verrou de l’enregistreur et les verrous de lecteur en attente forment un interblocage.

(Hérité de AsyncReaderWriterLock)
IsAnyLockHeld

Obtient une valeur indiquant si tout type de verrou est détenu par l’appelant et peut être utilisé immédiatement en fonction du contexte de l’appelant.

(Hérité de AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Obtient une valeur indiquant si un type de verrou est détenu par l’appelant sans tenir compte de la compatibilité de verrou du contexte de l’appelant.

(Hérité de AsyncReaderWriterLock)
IsPassiveReadLockHeld

Obtient une valeur indiquant si un verrou de lecture est détenu par l’appelant sans tenir compte de la compatibilité de verrou du contexte de l’appelant.

(Hérité de AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

Obtient une valeur indiquant si un verrou de lecture pouvant être mis à niveau est détenu par l’appelant sans tenir compte de la compatibilité de verrou du contexte de l’appelant.

(Hérité de AsyncReaderWriterLock)
IsPassiveWriteLockHeld

Obtient une valeur indiquant si un verrou d’écriture est détenu par l’appelant sans tenir compte de la compatibilité de verrou du contexte de l’appelant.

(Hérité de AsyncReaderWriterLock)
IsReadLockHeld

Obtient une valeur indiquant si l’appelant détient un verrou de lecture.

(Hérité de AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

Obtient une valeur indiquant si le synchronizationContext actuel n’est pas pris en charge par ce verrou.

(Hérité de AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

Obtient une valeur indiquant si l’appelant détient un verrou de lecture pouvant être mis à niveau.

(Hérité de AsyncReaderWriterLock)
IsWriteLockHeld

Obtient une valeur indiquant si l’appelant détient un verrou d’écriture.

(Hérité de AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

Obtient un SynchronizationContext qui, lorsqu’il est appliqué, supprime toute pompe de message qui peut s’exécuter pendant les blocs synchrones du thread appelant.

(Hérité de AsyncReaderWriterLock)
SyncObject

Obtient l’objet utilisé pour synchroniser l’accès aux champs de cette instance.

(Hérité de AsyncReaderWriterLock)

Méthodes

Complete()

A pour effet que les nouvelles requêtes de verrou de niveau supérieur sont rejetées et la tâche Completion passe à un état terminé après l'ouverture de tous les verrous émis.

(Hérité de AsyncReaderWriterLock)
Dispose()

Verrou non bloquant qui permet l'accès simultané, l'accès exclusif ou l'accès simultané pouvant être mis à niveau vers l'accès exclusif, avec des allocations spéciales pour les ressources qui doivent être préparées pour l'accès simultané ou exclusif.

(Hérité de AsyncReaderWriterLock)
Dispose(Boolean)

Supprime les ressources managées et non managées détenues par ce instance.

(Hérité de AsyncReaderWriterLock)
GetAggregateLockFlags()

Retourne l'agrégat des indicateurs de verrou pour tous les verrous imbriqués.

GetHangReport()

Fournit des données pour un rapport de blocage.

(Hérité de AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

Récupère la ressource avec le moniker spécifié.

GetTaskSchedulerForReadLockRequest()

Obtenez le planificateur de tâches pour exécuter la continuation lorsque le verrou est acquis. AsyncReaderWriterLock utilise un spécial SynchronizationContext pour gérer les verrous exclusifs et ignore le planificateur de tâches fourni. Il est donc utilisé uniquement dans un scénario de verrouillage en lecture. Cette méthode est appelée dans le contexte d’exécution pour attendre le verrou de lecture, afin qu’elle puisse reprendre TaskScheduler en fonction du contexte d’exécution actuel. Remarque : le planificateur de tâches est utilisé uniquement lorsque le verrou est émis ultérieurement. Si le verrou est émis immédiatement lorsque CanCurrentThreadHoldActiveLock retourne true, il est ignoré.

(Hérité de AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Obtient un planificateur de tâches pour préparer une ressource pour un accès simultané.

HideLocks()

Empêche l'utilisation ou la visibilité des verrous de l'appelant jusqu'à ce que la valeur retournée soit supprimée.

(Hérité de AsyncReaderWriterLock)
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle)

Vérifie si les indicateurs agrégés de tous les verrous de la pile de verrous satisfont aux indicateurs spécifiés.

(Hérité de AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

Déclenché lorsque le dernier verrou d’écriture est sur le point d’être libéré.

(Hérité de AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

Déclenché lors de la libération d’un verrou.

(Hérité de AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

Inscrit un rappel à appeler lorsque le verrou d’écriture détenu par l’appelant est sur le point d’être finalement libéré (verrou d’écriture le plus externe).

(Hérité de AsyncReaderWriterLock)
OnCriticalFailure(Exception)

Appelé lorsque le verrou détecte une erreur interne ou un modèle d’utilisation illégal qui indique une faille grave qui doit être immédiatement signalée à l’application et/ou faire tomber le processus pour éviter les blocages ou l’altération des données.

(Hérité de AsyncReaderWriterLock)
OnCriticalFailure(String)

Appelé lorsque le verrou détecte une erreur interne ou un modèle d’utilisation illégal qui indique une faille grave qui doit être immédiatement signalée à l’application et/ou faire tomber le processus pour éviter les blocages ou l’altération des données.

(Hérité de AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

Appelé après la libération d’un verrou exclusif, mais avant que quiconque ait la possibilité d’entrer dans le verrou.

OnUpgradeableReadLockReleased()

Appelé lorsqu’un verrou de lecture pouvant être mis à niveau supérieur est libéré, ne laissant aucun verrou (en écriture) restant.

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

Prépare une ressource pour l'accès simultané.

PrepareResourceForExclusiveAccessAsync(TResource, AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Prépare une ressource pour l'accès par un thread.

ReadLockAsync(CancellationToken)

Obtient un verrou de lecture, en attente asynchrone du verrou s'il n'est pas immédiatement disponible.

SetAllResourcesToUnknownState()

Définit toutes les ressources à prendre en compte dans un état inconnu.

SetResourceAsAccessed(Func<TResource,Object,Boolean>, Object)

Marque toutes les ressources chargées comme ayant été récupérées sous un verrou si elles satisfont à un prédicat.

SetResourceAsAccessed(TResource)

Marque une ressource comme ayant été extraite avec un verrou.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Obtient un verrou de lecture, en attente asynchrone du verrou s'il n'est pas immédiatement disponible.

(Hérité de AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Obtient un verrou de lecture, en attente asynchrone du verrou s'il n'est pas immédiatement disponible.

UpgradeableReadLockAsync(CancellationToken)

Obtient un verrou de lecture pouvant être mis à niveau, en attente asynchrone du verrou s’il n’est pas immédiatement disponible.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Obtient un verrou d'écriture, en attente asynchrone du verrou s'il n'est pas immédiatement disponible.

(Hérité de AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Obtient un verrou d'écriture, en attente asynchrone du verrou s'il n'est pas immédiatement disponible.

WriteLockAsync(CancellationToken)

Obtient un verrou d'écriture, en attente asynchrone du verrou s'il n'est pas immédiatement disponible.

Implémentations d’interfaces explicites

IHangReportContributor.GetHangReport()

Fournit des données pour un rapport de blocage.

(Hérité de AsyncReaderWriterLock)

S’applique à

Cohérence de thread

Ce type est thread-safe pour tous les membres.