相关疑难解决方法(0)

等待与task.Result相同的已完成任务?

我正在阅读Stephen Cleary撰写的"C#Cookbook中的并发",我注意到以下技巧:

var completedTask = await Task.WhenAny(downloadTask, timeoutTask);  
if (completedTask == timeoutTask)  
  return null;  
return await downloadTask;  
Run Code Online (Sandbox Code Playgroud)

downloadTask是对httpclient.GetStringAsync的调用,timeoutTask正在执行Task.Delay.

如果它没有超时,则downloadTask已经完成.为什么有必要做第二次等待而不是返回downloadTask.Result,因为任务已经完成了?

c# asynchronous task async-await

107
推荐指数
2
解决办法
6万
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1

task ×1