JSON API に依存する Windows ストア アプリを作成しています。API のプロバイダーは、1 秒あたり 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)
}
このようにして、別のリクエストをデキューしようとする前に、少なくとも 1 秒待機します。
Windows ストア アプリでは Thread.Sleep を使用できないことがわかりました。Task.Delay() は、呼び出されるたびに新しいタスクを作成するため、不必要に無駄に思えます。
私が気付いていない、これを行うための既知の方法がおそらくあると思いますか?
ありがとう、