Cómo detectar excepciones en el hilo principal si la excepción se produce en el hilo secundario?¿Cómo atrapar una excepción en el hilo principal si la excepción ocurre en el hilo secundario?
El fragmento de código para el escenario es la siguiente:
private void button1_Click(object sender, EventArgs e)
{
try
{
Thread th1 = new Thread(new ThreadStart(Test));
th1.Start();
}
catch (Exception)
{
}
}
void Test()
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(100);
if (i == 2)
throw new MyException();
}
}
No puede. Por un lado, en el momento en que se lanza la excepción, el try ... catch en el hilo principal ya se ha completado. –