我希望Timer
运行5秒钟,同时向后端启动网络请求。我想在执行操作之前等待计时器和请求完成。
private async void doWork()
{
await Task.Delay(5000);
await doPostRequest();
doSomethingElse();
}
类似于上面的代码,除了让这两个任务并行执行。我怎么能这样做?
答案 0 :(得分:5)
您可以使用Task.WhenAll
:
private async void doWork()
{
await Task.WhenAll(
Task.Delay(5000),
doPostRequest());
doSomethingElse();
}
只要其中一个完成,Task.WhenAny
就会完成。
您是否故意不从此方法返回任务?你现在不能等待doWork
。