在以下代码中:
有时我会在调用
if (await Task.WhenAny(task, Task.Delay(100)) == task) {
success = true;
}
else {
details += "Timed out on SendGrid.";
await task.ContinueWith(s =>
{
LogError(s.Exception);
}, TaskContinuationOptions.OnlyOnFaulted);
}
有时我会在调用
await task.ContinueWith
时得到 A task was cancelled
的提示。我的目标是查看是否在100毫秒内完成任务 - 如果没有,我想处理一些日志记录(这个特定的任务存在资源泄漏问题,因此我正在尝试通过设置超时来解决它)。这是从这里提取的指导:Debugging Task.WhenAny and Push Notifications
为什么会发生这种情况,我该如何防止这个异常被抛出?
task.ContinueWith
前删除await
即可。 - Evk