我正在编写一个依赖 JSON api 的 Windows 应用商店应用程序。API 的提供者要求每秒不超过 1 个 api 请求。
所以我创建了一个类,它允许我在阻塞队列中对请求进行排队,并在后台线程上运行类似于以下内容的循环:
Loop
{
// this will block until a request is added to the queue
MyRequest = Queue.Take()
// Create task to make the api request here.
Thread.Sleep(1000)
}
这样,它会等待至少一秒钟,然后再尝试将另一个请求出列。
我发现 Thread.Sleep 不适用于 Windows 商店应用程序。Task.Delay() 似乎不必要地浪费,因为每次调用它都会创建一个新任务。
我觉得可能有一种我不知道的已知方法可以做到这一点?
谢谢,