请考虑这个简短的控制台应用程序代码。
static void Main(string[] args)
{
try
{
Action a = () =>
{
throw new ApplicationException("Oops");
};
var ar = a.BeginInvoke(null, null);
ar.AsyncWaitHandle.WaitOne();
try
{
a.EndInvoke(ar);
Console.WriteLine("No message");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
finally
{
Console.ReadKey();
}
}
运行 Visual Studio 时会throw
抱怨它未处理。在调试器之外执行时,代码会按照我的预期执行(显示“糟糕”)。
如何说服 Visual Studio 允许代码像在现实世界中那样执行?