我有一个创建5个任务的循环。如何在每个任务之间插入5秒的延迟。我不知道如何在那里安装Task.Delay(5000)。
var tasks = new List<Task<int>>();
for (var i = 0; i < 5; i++)
{
tasks.Add(ProcessQueueAsync());
}
await Task.WhenAll(tasks);
我的ProcessQueAsync方法调用服务器,检索数据并返回和int。
private async Task<int> ProcessQueAsync()
{
var result = await CallToServer();
return result.Count;
}
答案 0 :(得分:3)
for (var i = 0; i < 5; i++)
{
tasks.Add(ProcessQueueAsync());
await Task.Delay(5000);
}
或者:
for (var i = 0; i < 5; i++)
{
await ProcessQueueAsync();
await Task.Delay(5000);
}
取决于你想要的。
答案 1 :(得分:0)
如果您希望任务一个接一个地运行,延迟时间为5秒,您应该查看Task.ContinueWith
而不是Task.WhenAll
。这将允许您以串行方式而不是并行方式运行任务。