我在寫一個Windows Store應用程序,它將依賴於JSON api。 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()似乎不必要的浪費,因爲每次調用它時都會創建一個新任務。
我覺得可能有一種已知的方式來做到這一點,我不知道?
感謝,
任務非常輕量級,在.NET 4.5/Core中更是如此。 –