EClrOperation
Mise à jour : novembre 2007
Décrit l'ensemble d'opérations pour lesquelles un hôte peut appliquer des actions de stratégie.
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 des actions de stratégie à prendre lorsqu'un AppDomain est déchargé de façon non progressive (brusque). |
OPR_AppDomainUnload |
L'hôte peut spécifier des actions de stratégie à prendre lors du déchargement d'un AppDomain. |
OPR_FinalizerRun |
L'hôte peut spécifier des actions de stratégie à prendre lors de l'exécution de finaliseurs. |
OPR_ProcessExit |
L'hôte peut spécifier des actions de stratégie à prendre lors de la fermeture du processus. |
OPR_ThreadAbort |
L'hôte peut spécifier des actions de stratégie à prendre lors de l'abandon d'un thread. |
OPR_ThreadRudeAbortInCriticalRegion |
L'hôte peut spécifier des actions de stratégie à prendre lorsqu'un abandon de thread impropre se produit dans une région critique de code. |
OPR_ThreadRudeAbortInNonCriticalRegion |
L'hôte peut spécifier des actions de stratégie à prendre lorsqu'un abandon de thread impropre se produit dans une région non critique de code. |
Notes
L'infrastructure de fiabilité du Common Language Runtime (CLR) fait la distinction entre les abandons et échecs d'allocation des ressources qui se produisent dans les régions critiques de code et ceux qui se produisent dans les régions non critiques de code. Cette distinction permet aux hôtes de définir des stratégies différentes selon l'endroit où survient un échec dans le code.
Une région critique de code est un espace où le Common Language Runtime (CLR) ne peut pas garantir que l'abandon d'une tâche ou l'échec de satisfaction d'une demande de ressources affectera uniquement la tâche en cours. Par exemple, si une tâche contient un verrou et que, au moment d'une demande d'allocation de mémoire, elle reçoit un HRESULT qui indique un échec, cela est insuffisant simplement pour abandonner cette tâche en vue de garantir la stabilité du AppDomain, car le AppDomain peut contenir d'autres tâches qui attendent le même verrou. L'abandon de la tâche en cours peut entraîner le blocage des autres tâches indéfiniment. Dans ce cas, l'hôte a besoin de pouvoir décharger le AppDomain entier plutôt que de prendre le risque d'une instabilité potentielle.
Une région non critique de code, en revanche, est une région où le Common Language Runtime (CLR) peut garantir qu'un abandon ou un échec affectera uniquement la tâche sur laquelle se produit l'erreur.
Le CLR distingue également les abandons appropriés et les abandons impropres (brusques). En général, un abandon normal ou correct fait en sorte d'exécuter des routines de gestion d'exceptions et des finaliseurs avant d'abandonner une tâche, alors qu'un abandon impropre n'apporte pas de telles garanties.
Configuration requise
Plateformes : consultez Configuration requise du .NET Framework.
En-tête : MSCorEE.idl
Bibliothèque : MSCorEE.dll
Versions du .NET Framework : 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0