J'ai une opération qui doit être exécutée de manière fiable dans son ensemble ou ne pas être effectuée du tout.Les URCE sont-elles nécessaires uniquement pour protéger les états gérés partagés dans un AppDomain?
- L'objectif est uniquement de préserver la cohérence de certains états partagés gérés en mémoire.
- Ces états sont contenus dans un domaine d'application. Ils ne sont pas visibles en dehors de ce domaine.
- Je n'ai donc pas à réagir lorsque le domaine ou le processus sont arrêtés.
- J'écris une bibliothèque de classes et l'utilisateur peut appeler mon code de n'importe où. Cependant, mon code n'appelle aucun code utilisateur, pas même les méthodes virtuelles.
- Le CLR peut être hébergé.
À ma connaissance, je ne pas besoin régions d'exécution limitée (CER) depuis:
- CER ne sont nécessaires contre l'infâme
OutOfMemoryException
,ThreadAbortException
etStackOverflowException
. - Mon code ne fait aucune allocation, donc je ne me soucie pas de OutOfMemory (de toute façon les allocations ne doivent pas être faites dans un CER).
- Si un débordement de pile se produit, le processus sera de toute façon interrompu (ou le domaine dans certains scénarios hébergés).
- Les interruptions de thread sont déjà retardées jusqu'à la fin d'un bloc finally et mon code est déjà dans un.
Ai-je raison sur ces points? Voyez-vous d'autres raisons pour lesquelles je devrais avoir besoin de CER?