C#定时器和网络并行调用

C# timer and network call in parallel

我想 Timer 运行 持续 5 秒,同时启动对后端的网络请求。然后我想在执行操作之前等待计时器和请求完成。

private async void doWork()
{
    await Task.Delay(5000);
    await doPostRequest();
    doSomethingElse();
}

类似于上面的代码,除了让这两个任务并行执行。我该怎么做?

您可以使用 Task.WhenAll

private async void doWork()
{
    await Task.WhenAll(
      Task.Delay(5000),
      doPostRequest());
    doSomethingElse();
}

还有一个Task.WhenAny,其中一个完成后立即完成。

您是有意不return 使用此方法的任务吗?您现在不能等待 doWork 本身。