我曾遇到一个通过更改代码解决的从Task.Run
中捕获异常的问题。我想知道以下两种处理异常的方式之间的区别:
在Outside
方法中,我无法捕获异常,但在Inside
方法中可以。
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);
}
});
}
await
,那么这不是一个重复的问题... 如果他正在使用 .net 4.x,他就不能使用await
。 - Matthew Watsonawait
是.NET 4.x! - Matías Fidemraizerawait
需要C#5。 - Matthew Watson