Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Thread.BeginCriticalRegion (Método)

Notifica a un host que la ejecución está a punto de entrar en una región del código donde los efectos de una anulación del subproceso o de una excepción no controlada podrían constituir un riesgo para otras tareas del dominio de aplicaciones.

Espacio de nombres:  System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public static void BeginCriticalRegion()

Los hosts de Common Language Runtime (CLR), como Microsoft SQL Server 2005, pueden establecer directivas diferentes para los errores que se produzcan en regiones críticas y no críticas del código. Una región crítica es aquélla donde los efectos de una anulación de un subproceso o de una excepción no controlada podrían no limitarse a la tarea actual. En cambio, una anulación o un error en una región no crítica del código afecta únicamente a la tarea donde se produce el error.

Por ejemplo, consideremos una tarea que intenta asignar memoria mientras mantiene un bloqueo. Si se produce un error al asignar la memoria, no basta con anular la tarea actual para garantizar estabilidad de AppDomain, porque puede haber otras tareas en el dominio esperando el mismo bloqueo. Si se finaliza la tarea actual, otras tareas podrían sufrir un interbloqueo.

Cuando se produce un error en una región crítica, el host puede optar por descargar el AppDomain completo en lugar de arriesgarse a continuar con la ejecución en un estado potencialmente inestable. Para informar al host de que el código está entrando en una región crítica, se llama a BeginCriticalRegion. Llame a EndCriticalRegion cuando la ejecución regrese a una región no crítica del código.

Para usar este método en código que se ejecute en SQL Server 2005, es obligatorio que el código se ejecute en el máximo nivel de protección del host.

NotaNota

El atributo HostProtectionAttribute aplicado a este tipo o miembro tiene el valor de propiedad Resources siguiente: Synchronization | ExternalThreading. El atributo HostProtectionAttribute no afecta a las aplicaciones de escritorio (que normalmente se inician haciendo doble clic en un icono, escribiendo un comando o introduciendo una dirección URL en el explorador). Para obtener más información, vea la clase HostProtectionAttribute o Programación en SQL Server y atributos de protección de host.

El ejemplo siguiente muestra el uso de los métodos BeginCriticalRegion y EndCriticalRegion para dividir un bloque de código en regiones críticas y no críticas.


using System.Threading;

public class MyUtility
{
    public void PerformTask()
    {
        // Code in this region can be aborted without affecting
        // other tasks.
        //
        Thread.BeginCriticalRegion();
        //
        // The host might decide to unload the application domain
        // if a failure occurs in this code region.
        //
        Thread.EndCriticalRegion();
        //
        // Code in this region can be aborted without affecting
        // other tasks.
    }
}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft