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

ThreadAbortException (Clase)

Excepción que se produce cuando se realiza una llamada al método Abort. Esta clase no puede heredarse.

System.Object
  System.Exception
    System.SystemException
      System.Threading.ThreadAbortException

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

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class ThreadAbortException : SystemException

El tipo ThreadAbortException expone los siguientes miembros.

  NombreDescripción
Propiedad públicaDataObtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario acerca de la excepción. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkExceptionStateObtiene un objeto que contiene la información específica de la aplicación relacionada con la anulación del subproceso.
Propiedad públicaHelpLinkObtiene o establece un vínculo al archivo de ayuda asociado a esta excepción. (Se hereda de Exception).
Propiedad públicaHResultObtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkInnerExceptionObtiene la instancia Exception que produjo la excepción actual. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkMessageObtiene un mensaje que describe la excepción actual. (Se hereda de Exception).
Propiedad públicaSourceDevuelve o establece el nombre de la aplicación o del objeto que generó el error. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkStackTraceObtiene una representación de cadena de los marcos inmediatos en la pila de llamadas. (Se hereda de Exception).
Propiedad públicaTargetSiteObtiene el método que produjo la excepción actual. (Se hereda de Exception).
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkGetBaseExceptionCuando se reemplaza en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores. (Se hereda de Exception).
Método públicoCompatible con XNA FrameworkGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetObjectDataCuando se reemplaza en una clase derivada, establece SerializationInfo con información sobre la excepción. (Se hereda de Exception).
Método públicoCompatible con XNA FrameworkGetTypeObtiene el tipo en tiempo de ejecución de la instancia actual. (Se hereda de Exception).

In XNA Framework 3.0, este miembro se hereda de Object.GetType().
Método públicoCompatible con XNA FrameworkToStringCrea y devuelve una representación de cadena de la excepción actual. (Se hereda de Exception).
Arriba

Cuando se realiza una llamada al método Abort para destruir un subproceso, Common Language Runtime produce una excepción ThreadAbortException. ThreadAbortException es una excepción especial que se puede detectar, pero se volverá a producir automáticamente al final del bloque catch. Cuando se produce esta excepción, el motor en tiempo de ejecución ejecuta todos los bloques finally antes de finalizar el subproceso. Dado que el subproceso puede hacer un cálculo ilimitado en los bloques finally o puede llamar a Thread.ResetAbort para cancelar la anulación, no hay ninguna garantía de que el subproceso finalice en algún momento. Si desea esperar a que el subproceso anulado finalice, puede llamar al método Thread.Join. Join es una llamada de bloqueo que no regresa hasta que el subproceso deja de ejecutarse realmente.

NotaNota

Cuando Common Language Runtime (CLR) detiene los subprocesos en segundo plano (una vez que han finalizado todos los subprocesos en primer plano de un archivo ejecutable administrado), no utiliza Thread.Abort. Por lo tanto, no se puede utilizar ThreadAbortException para detectar el momento en el que CLR finaliza los subprocesos en segundo plano.

ThreadAbortException utiliza el resultado HRESULT COR_E_THREADABORTED, que tiene el valor 0x80131530.

NotaNota

El valor de la propiedad heredad Data es siempre null.

En el siguiente ejemplo se muestra la forma de anular un subproceso. El subproceso que recibe ThreadAbortException utiliza el método ResetAbort para cancelar la solicitud de anulación y reanudar la ejecución.


using System;
using System.Threading;
using System.Security.Permissions;

public class ThreadWork {
    public static void DoWork() {
        try {
            for(int i=0; i<100; i++) {
                Console.WriteLine("Thread - working."); 
                Thread.Sleep(100);
            }
        }
        catch(ThreadAbortException e) {
            Console.WriteLine("Thread - caught ThreadAbortException - resetting.");
            Console.WriteLine("Exception message: {0}", e.Message);
            Thread.ResetAbort();
        }
        Console.WriteLine("Thread - still alive and working."); 
        Thread.Sleep(1000);
        Console.WriteLine("Thread - finished working.");
    }
}

class ThreadAbortTest {
    public static void Main() {
        ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
        Thread myThread = new Thread(myThreadDelegate);
        myThread.Start();
        Thread.Sleep(100);
        Console.WriteLine("Main - aborting my thread.");
        myThread.Abort();
        myThread.Join();
        Console.WriteLine("Main ending."); 
    }
}


Este código genera el resultado siguiente:

 Thread - working.
 Main - aborting my thread.
 Thread - caught ThreadAbortException - resetting.
 Exception message: Thread was being aborted.
 Thread - still alive and working.
 Thread - finished working.
 Main ending.

.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.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.

Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft