EClrOperation, énumération
Décrit l’ensemble d’opérations pour lesquelles un hôte peut appliquer des actions de stratégie.
Syntaxe
typedef enum {
OPR_ThreadAbort,
OPR_ThreadRudeAbortInNonCriticalRegion,
OPR_ThreadRudeAbortInCriticalRegion,
OPR_AppDomainUnload,
OPR_AppDomainRudeUnload,
OPR_ProcessExit,
OPR_FinalizerRun
} EClrOperation;
Membres
Membre | Description |
---|---|
OPR_AppDomainRudeUnload |
L’hôte peut spécifier les actions de stratégie à effectuer quand un AppDomain est déchargé de manière anormale (brutale). |
OPR_AppDomainUnload |
L’hôte peut spécifier les actions de stratégie à effectuer quand un AppDomain est déchargé. |
OPR_FinalizerRun |
L’hôte peut spécifier les actions de stratégie à effectuer quand des finaliseurs s’exécutent. |
OPR_ProcessExit |
L’hôte peut spécifier les actions de stratégie à effectuer quand le processus s’arrête. |
OPR_ThreadAbort |
L’hôte peut spécifier les actions de stratégie à effectuer quand un thread est abandonné. |
OPR_ThreadRudeAbortInCriticalRegion |
L’hôte peut spécifier les actions de stratégie à effectuer quand un abandon de thread brutal se produit dans une partie critique du code. |
OPR_ThreadRudeAbortInNonCriticalRegion |
L’hôte peut spécifier les actions de stratégie à effectuer quand un abandon de thread brutal se produit dans une partie non critique du code. |
Remarques
L’infrastructure de fiabilité du Common Language Runtime (CLR) fait la distinction entre les abandons et les échecs d’allocation de ressources qui se produisent dans les régions critiques du code et ceux qui se produisent dans les régions non critiques du code. Cette distinction est conçue pour permettre aux hôtes de définir des stratégies différentes en fonction de l’endroit où une défaillance se produit dans le code.
Une région de code critique est un espace où le CLR ne peut pas garantir que l’abandon d’une tâche ou l’échec de l’exécution d’une demande de ressources va affecter seulement la tâche active. Par exemple, si une tâche détient un verrou et reçoit un HRESULT indiquant un échec après une demande d’allocation de mémoire, il ne suffit pas d’abandonner simplement cette tâche pour garantir la stabilité du AppDomain, car le AppDomain peut contenir d’autres tâches attendant le même verrou. Abandonner la tâche active peut avoir comme conséquence que ces autres tâches cessent de répondre. Dans ce cas, l’hôte doit pouvoir décharger l’intégralité de AppDomain au lieu de risquer une instabilité potentielle.
Une région de code non critique est une région où le CLR peut garantir qu’un abandon ou une défaillance va affecter seulement la tâche dans laquelle l’erreur se produit.
Le CLR fait également la distinction entre les abandons normaux et anormaux (brutaux). En général, un abandon normal fait tout ce qui est nécessaire pour exécuter les routines de gestion des exceptions et les finaliseurs avant d’abandonner une tâche, tandis qu’un abandon anormal n’offre aucune garantie de ce type.
Configuration requise
Plateformes : Consultez Configuration requise.
En-tête : MSCorEE.h
Bibliothèque : MSCorEE.dll
Versions de .NET Framework : disponible depuis la version 2.0