J'ai un service Windows qui surveille une table (avec une minuterie) pour les lignes, attrape les lignes une à la fois lorsqu'elles apparaissent, soumet l'information à un service Web RESTful, analyse la réponse et écrit quelques détails sur le réponse à une table. Est-ce que je gagnerais n'importe quoi en rendant cet asynchrone? Mon actuelle (dépouillée) Code de soumission de service Web est la suivante:Dois-je utiliser le traitement asynchrone?
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));
HttpWebResponse resp;
try
{
resp = (HttpWebResponse)req.GetResponse();
}
catch (WebException we)
{
resp = (HttpWebResponse)we.Response;
}
if (resp != null)
{
Stream respStream = resp.GetResponseStream();
if (respStream != null)
{
responseBody = new StreamReader(respStream).ReadToEnd();
}
resp.Close();
respStream.Close();
}
return responseBody;
Si vous n'avez pas à faire quelque chose en même temps et que l'utilisateur n'est pas impliqué, certainement pas. Comme c'est un service, un autre thread peut accomplir n'importe quelle autre activité requise. – kenny
Il peut être utile d'obtenir une réponse plus détaillée si vous pouvez détailler quelques détails: quelle est la quantité typique d'enregistrements que vous devrez traiter dans un laps de temps x? Quel est le flux de votre programme? (Signification, tirez-vous un enregistrement, déclenchez la requête, attendez la réponse, mettez à jour la BD, obtenez l'enregistrement suivant, répétez, ou avez-vous un autre flux?) –
Sauf si votre service Windows est vraiment occupé à faire autre chose et vous ne voulez pas qu'il attende une réponse, je ne vois vraiment pas l'intérêt de faire cette async. Par contre, je dois préciser que WebResponse (et donc HttpWebResponse), Stream et StreamReader implémentent tous IDisposable et doivent être éliminés. – Pete