J'ai une page qui doit combiner les données de quatre différents webrequests dans une seule liste d'éléments. Actuellement, je les exécute séquentiellement, en les ajoutant à une seule liste, puis en liant cette liste à mon répéteur.plusieurs webrequests de manière asynchrone dans asp.net?
Cependant, je voudrais pouvoir appeler ces quatre webrequests de façon asynchrone afin qu'ils puissent fonctionner simultanément et économiser du temps de chargement. Malheureusement, tous les tutoriels asynchrones et les articles que j'ai vus traitent d'une seule requête, en utilisant le gestionnaire fini pour continuer le traitement.
Comment puis-je effectuer les quatre (peut-être même augmenter!) Simultanément, en gardant à l'esprit que chaque résultat doit être introduit dans une seule liste?
merci beaucoup!
EDIT: exemple simplifié de ce que je fais:
var itm1 = Serialize(GetItems(url1));
list.AddRange(itm1);
var itm2 = Serialize(GetItems(url2));
list.AddRange(itm2);
string GetItems(string url)
{
var webRequest = WebRequest.Create(url) as HttpWebRequest;
var response = webRequest.GetResponse() as HttpWebResponse;
string retval;
using (var sr = new StreamReader(response.GetResponseStream()))
{ retval = sr.ReadToEnd(); }
return retval;
}
Avez-vous du code que vous pouvez publier pour nous montrer comment vous répondez actuellement à ces demandes? –
ajouté un exemple simplifié de la façon dont je fais cela. Serialize() convertit simplement la chaîne json à la classe spécifiée pour la collection List – SelAromDotNet
Je pense au lieu d'exécuter la requête de manière asynchrone avec BeginGetResponse, qui ne semble pas me sauver quoi que ce soit, j'ai besoin d'exécuter la méthode GetItems de façon asynchrone, que 4 demandes peuvent s'exécuter simultanément. Je pensais utiliser des threads avant et maintenant que je regarde mon problème, il semble que la meilleure chose à faire est d'émettre chaque GetItems sur un thread séparé, mais comment puis-je les synchroniser pour que l'application les exécute simultanément, puis agrège tous leurs résultats? – SelAromDotNet