Je souhaite exécuter un ensemble de requêtes Web, mais définissez un seuil sur le nombre pouvant être démarré simultanément.Throttle WebRequests
je suis tombé sur cette LimitedConcurrencyTaskScheduler example et a essayé de l'utiliser comme si
scheduler = new LimitedConcurrencyLevelTaskScheduler(1);
taskFactory = new TaskFactory(scheduler);
...
private Task<WebResponse> GetThrottledWebResponse(WebRequest request)
{
return taskFactory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null);
}
Cependant, je remarque que même avec un maximum de 1 concurrency, mes tâches semblaient être compléter dans une commande non-FIFO. Lorsque j'ai mis des points d'arrêt dans LimitedConcurrencyLevelTaskScheduler, il est devenu évident qu'il n'est pas utilisé du tout. Je suppose que la façon dont j'utilise TaskFactory.FromAsync ne fait pas ce que j'avais prévu.
Existe-t-il un moyen approprié de limiter les demandes Web simultanées?
Merci, ce fut une telle goutte de solution! – Chris