public void threadMethod()
{
try
{
// do something
}
catch (ThreadInterruptedException e)
{
Console.WriteLine("[Net]", role, "Thread interrupted.");
n.CloseConnection();
}
finally
{
if (isAutenticated == false)
{
n.CloseConnection();
}
Dispatcher.Invoke(addMessage, "Network connection searching was disabled.");
DebuggerIX.WriteLine("[Net]", role, "Finished");
Dispatcher.Invoke(threadStoppedDel);
}
}
El método threadMethod se ejecuta a través de System.Threading.Thread. El hilo puede ser interrumpido siempre que la excepción ThreadInterruptedException pueda ser arrojada al bloque finally, ¿verdad? ¿Tengo que encerrar el bloque por fin en try-catch nuevamente?¿Cómo manejar adecuadamente ThreadInterruptedException?
Gracias!
La mejor manera de manejarlo es no causarlo. No use excepciones para cambiar el control de flujo de sus hilos. Use señales de hilo cruzado bien establecidas, como 'ManualResetEvent'. –