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
本身。
我想 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
本身。