gpt4 book ai didi

.net-4.0 - TaskEx.WhenAll 和异常

转载 作者:行者123 更新时间:2023-12-01 12:46:00 35 4
gpt4 key购买 nike

我不得不使用 .NET 4.0 框架和异步 CTP 扩展来执行如下操作:

     var dataTasks = _tasks.Select(t => t.GetData(keys));

var results = TaskEx.WhenAll(dataTasks).Result.ToList();

其中 _tasks 是一个对象列表,每个对象都提供一个返回 Task<code><Data</code>> 的 GetData 方法。 .

我的问题是 dataTasks 之一正在抛出异常并使整个过程陷入困境。我希望能够检查每个 dataTask 的结果并检查结果,记录任何异常,然后继续处理任何有效结果。不过,我现在不确定是否要着手去做。任何帮助将不胜感激。

最佳答案

一种方法是使用普通的 ContinueWith()改变一个潜在的故障 Task<T>进入成功Task<Task<T>> .如果您随后使用 WhenAll().Result在那(或 await WhenAll() )上,你会得到 Task<T>[] ,这正是您所需要的:

var dataTasks = _tasks.Select(t => t.GetData(keys).ContinueWith(c => c));

Task<T>[] results = Task.WhenAll(dataTasks).Result;

关于.net-4.0 - TaskEx.WhenAll 和异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929013/

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