2
我想執行一堆WebRequests,但設置了多少個可同時啓動的閾值。節流WebRequests
我碰到這個LimitedConcurrencyTaskScheduler example,並試圖利用它,像這樣
scheduler = new LimitedConcurrencyLevelTaskScheduler(1);
taskFactory = new TaskFactory(scheduler);
...
private Task<WebResponse> GetThrottledWebResponse(WebRequest request)
{
return taskFactory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null);
}
但是我注意到,即使有1最大併發,我的任務似乎是以非FIFO順序完成。當我將限制點放在LimitedConcurrencyLevelTaskScheduler中時,很明顯它沒有被使用。我想我使用TaskFactory.FromAsync的方式沒有達到我的預期。
有沒有適當的方法來節流WebRequests?
謝謝,這是一個簡單的解決方案! – Chris