¿En realidad son tres conceptos diferentes o me estoy involucrando? (He estado leyendo artículos sobre el enhebrado y la recolección de basura juntos y me he confundido).Diferencia entre "Sección crítica", "Región crítica" y "Región de ejecución limitada"
"Sección crítica" - Creo que este puede ser el término para las secciones de código que no quiere múltiples subprocesos accediendo al mismo tiempo, es decir, dentro de la cerradura y Monitor.Entrada/Salir de las declaraciones?
"Región crítica" - No hay una pista real aquí - MSDN dice algo así como "Esto le dice a un host que las excepciones lanzadas dentro de la sección pueden tener un efecto más amplio". Y que "los hosts del CLR, por ejemplo, el servidor Sql", pueden optar por manejar las excepciones lanzadas dentro de las regiones críticas "de manera diferente". De manera diferente, ¿cómo? ¿Y por qué? Y, lo más importante, ¿en qué escenarios del mundo real podría necesitar marcar el código como una región crítica?
"restringida Ejecución Región" - me encontré con esto cuando leer acerca de la CriticalFinalizerObject en un artículo de la recolección de basura.
Todo lo que puedo entender de MSDN en este caso es que el código dentro de una de estas regiones está garantizado de alguna manera (¿pero cómo?) Y por lo tanto no debe lanzar excepciones "fuera de banda".
¿Qué es un out-of-band exception
? (Hice google esto pero me preguntó si quise decir "excepción fuera de límites").
¿Existe alguna excepción no controlada? ¿O solo ciertos tipos de excepción? Y nuevamente, lo más importante, ¿en qué escenarios del mundo real podría necesitar una "región de ejecución restringida"?
Como no entiendo muy bien los conceptos, no estoy seguro de qué etiquetas necesita esta pregunta además de ".NET".
Estoy bastante seguro de que su comprensión de la sección crítica es correcta. – Brian
Eso es un comienzo :). No estoy seguro si he usado los términos correctos. He visto "Sección crítica" en artículos sobre bloqueo. Solo he visto "Región crítica" en la página de MSDN para Thread.BeginCriticalRegion. Sé que "Región de Ejecución Restringida" es porque hay una página MSDN para ello. –