У меня была проблема с перехватом моего исключения из Task.Run. Я изменил свой код, и моя проблема решена. Я хочу выяснить, в чем разница между обработкой исключений внутри Task.Run этими двумя способами:
Во внешней функции я не могу поймать исключение, но во внутренней я могу его поймать.
void Outside()
{
try
{
Task.Run(() =>
{
int z = 0;
int x = 1 / z;
});
}
catch (Exception exception)
{
MessageBox.Show("Outside : " + exception.Message);
}
}
void Inside()
{
Task.Run(() =>
{
try
{
int z = 0;
int x = 1 / z;
}
catch (Exception exception)
{
MessageBox.Show("Inside : "+exception.Message);
}
});
}