我听说火&的异常忘记了异步呼叫被吞下。但是,我并不是这种情况,我用下面的例子:如何为异步/等待制定沉默异常?
class Program
{
static void Main(string[] args)
{
foo();
Thread.Sleep(3000);
}
static async void foo()
{
Task.Factory.StartNew(() =>
{
Thread.Sleep(1000);
throw new Exception();
});
}
}
抛出异常,导致快速失败。我不知道GC是否会在收集对象时引发异常。
在什么样的代码示例中,开发人员在异步/等待代码中遇到未观察到的异常异常?
请注意,您的'async'方法没有在等待任何内容,所以您不应该将它标记为'async',因为编译器警告您正在告诉您。 – Servy
@TomK:在您发布的代码中,异常*被*默默吞下。你可能只是看到调试器通知你这个异常。 –