저는 JSON API를 사용하는 Windows Store 앱을 작성하고 있습니다. API 공급자는 초당 1 회의 api 요청이 이루어 지도록 요청합니다.1 초에 한 번만 작업을 수행하는 가장 좋은 방법은 무엇입니까?
그래서 나는 나를 블록 큐에 요청을 대기 할 수 있도록 해주는 클래스를 생성하고, 백그라운드 스레드에 다음과 유사한 루프 실행됩니다 :
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)
}
이 방법은에서 기다릴 것을 다른 요청을 Dequeue하기 전에 적어도 1 초.
나는 Thread.Sleep을 Windows 스토어 앱에서 사용할 수 없다는 것을 발견했습니다. Task.Delay()는 불필요하게 낭비되는 것 같습니다. 호출 될 때마다 새로운 작업을 생성하기 때문입니다.
내가 알고있는이 일을하는 알려진 방법이있는 것처럼 느껴지나요?
감사합니다,
작업은 .NET 4.5/Core에서 매우 가볍습니다. –