C# 如何在任务列表之间插入延迟<;int>;?

C# 如何在任务列表之间插入延迟<;int>;?,c#,async-await,C#,Async Await,我有一个创建5个任务的循环。如何在每个任务之间插入5秒的延迟。我不知道如何适应这个任务。在那里延迟(5000) var tasks = new List<Task<int>>(); for (var i = 0; i < 5; i++) { tasks.Add(ProcessQueueAsync()); } await Task.WhenAll(tasks); var tasks=newlist(); 对于(变量i=0;i

我有一个创建5个任务的循环。如何在每个任务之间插入5秒的延迟。我不知道如何适应这个任务。在那里延迟(5000)

 var tasks = new List<Task<int>>();

 for (var i = 0; i < 5; i++)
 {  
      tasks.Add(ProcessQueueAsync());
 }

 await Task.WhenAll(tasks);
var tasks=newlist();
对于(变量i=0;i<5;i++)
{  
添加(ProcessQueueAsync());
}
等待任务。何时(任务);
我的ProcessQueAsync方法调用服务器,检索数据并返回和int

  private async Task<int> ProcessQueAsync()
  {
     var result = await CallToServer();
     return result.Count;
  }
private async Task ProcessQueAsync()
{
var result=await CallToServer();
返回结果。计数;
}
用于(变量i=0;i<5;i++)
{  
添加(ProcessQueueAsync());
等待任务。延迟(5000);
}
或:

for(变量i=0;i<5;i++)
{  
等待ProcessQueueAsync();
等待任务。延迟(5000);
}

取决于您的需要。

如果您希望任务以5秒的延迟一个接一个地运行,您可能应该查看而不是使用
Task.whalll
。这将允许您以串行方式而不是并行方式运行任务。

您的确切意思是,“插入5秒的延迟?”任务本质上是异步的;如果可能,它们将并行运行。你到底想在什么地方耽搁?我知道这看起来有点疯狂。我有一个从中读取的队列,因为这五个任务一起运行,所以它们都读取数据库中相同的记录。如果不进行彻底的返工,也不了解队列应该如何工作,我只希望有一个延迟,这样我就可以读取和处理一堆记录,然后读取下一批记录,等等。我想我只需要启动五个进程,以便非常快地读取和更新数据库,但我没有想清楚!也许我应该放弃任务/async/await,然后同步执行。Thanks@ScottG我认为你应该问一个新问题,问你到底想做什么。XY问题。
 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);
 }