代码之家  ›  专栏  ›  技术社区  ›  nassan

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

  •  2
  • nassan  · 技术社区  · 7 年前

    我想要一个 Timer

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

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

    1 回复  |  直到 7 年前
        1
  •  5
  •   Peter Bons    7 年前

    您可以使用 Task.WhenAll 为此:

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

    还有 Task.WhenAny

    您不从该方法返回任务是故意的吗?你不能等待 doWork 现在它自己。