2010-09-21 13 views
7

estoy Inicialización de un hilo como hilo estática como se muestra abajoSTA Abort hilo Excepción

Thread GenerateKeywords; 
private void btnStart_Click(object sender, EventArgs e) 
{ 

    //Initializes the Test Thread   
    Test = new Thread(TestMethod); 

    //Sets the apartment state to Static 
    Test.SetApartmentState(ApartmentState.STA); 

    //Starts the GenerateKeywords Thread   
    Test.Start(); 
} 

pero cuando estoy a abortar este hilo a través de este método

private void btnStop_Click(object sender, EventArgs e) 
{ 

if (Test != null) 
     Test .Abort(); 
} 

está dando siguiente excepción: " Se produjo una primera excepción de tipo 'System.Threading.ThreadAbortException' en mscorlib.dll El subproceso 0x13dc ha salido con el código 0 (0x0).

la manera de deshacerse de esta excepción ??

+0

Es * no * es una excepción, sólo una notificación del depurador que se ha detectado una excepción. Lo cual es normal, Thread.Abort() inyecta una excepción. No * arregle esto * –

Respuesta

2

El ThreadAbort excepción no debería ser un problema. Un ThreadAbortException no controlada es uno de los dos tipos de excepción que no causa el apagado de aplicaciones (el otro es AppDomainUnloadException).

lo envuelve en un intento de captura y el mango excepción de tipo ThreadAbort y establecer Thread.ResetAbort = true;

Marque esta link para más detalles.

3

Usted debe sondear para alguna condición durante la ejecución de un hilo con el fin de abortar it.Set alguna variable booleana en la parada botón y luego sondear dentro método de hilo para abortar.

Cuestiones relacionadas