C# 如何在任务列表之间插入延迟<;int>;?
我有一个创建5个任务的循环。如何在每个任务之间插入5秒的延迟。我不知道如何适应这个任务。在那里延迟(5000)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
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);
}