gpt4 book ai didi

C# AggregateException,在什么情况下我会有聚合异常?

转载 作者:行者123 更新时间:2023-11-30 12:54:18 27 4
gpt4 key购买 nike

我可能遗漏了一个非常明显的事实,但我很难理解 AggregatedExceptions 的必要性。

我知道自从 async/await 以来,我们不必再为 AggregatedExceptions 而烦恼(或者至少更少地遇到它们)。我可以理解这一点,因为我只是开始一个任务,有时我选择将“调用线程”与“并行运行的任务”同步

var sometTask = DoSomethingInParallelAsync().ConfigureAwait(false);
...
...
await someTask;

在这种情况下,DoSomethingInParallelAsync() 中发生的异常将在我等待该调用时呈现给我。

为什么使用await,而是显式地在Task 上使用Wait

var someTask = DoSomethingInParallelAsync();
...
...
someTask.Wait();

本例中抛出的异常,总是将抛出的 Exception 包装在 AggregateException 中。我还是不明白为什么。

当使用 async/await 时我不能做什么,它消除了对 AggregateException 的需求?

最佳答案

导致和处理错误

Task task1 = Task.Factory.StartNew(() => { throw new ArgumentException(); } );
Task task2 = Task.Factory.StartNew(() => { throw new UnauthorizedAccessException(); } );

try
{
Task.WaitAll(task1, task2);
}
catch (AggregateException ae)
{
}

还可以看到 links

这是一个例子:link2

关于C# AggregateException,在什么情况下我会有聚合异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58626753/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com