首页 > 解决方案 > Task.WhenAll 在请求之间添加延迟(httpclient)

问题描述

我在Task HttpResponseMessage 的集合上使用Task.WhenAll。我想在每个请求之间添加一个 Task.Delay 以限制对 API 的调用。

显然,我的列表是一个强类型列表,Task<HttpResponseMessage>而 Task.Delay 只是一个任务。有没有办法同时处理这个问题,还是我需要重新考虑我的实现?

          foreach (var x in items)
            {
                requestList.Add(MakeHttpClientCall(x)); <== requestList = List<Task<HttpResponseMessage>>

              // want to add a Task.Delay here e.g.
                requestList.Add(Task.Delay(4)) etc
            }


            Task allTasks = Task.WhenAll(statNumberList);
            try
            {

                await allTasks;

            }

我试过玩任务列表和演员表,但到目前为止还没有运气。希望这是有道理的!谢谢

标签: c#async-awaitdotnet-httpclient

解决方案


推荐阅读