1

テーブルの行を (タイマーで) 監視し、表示された行を一度に 1 つずつ取得し、RESTful Web サービスに情報を送信し、応答を分析し、応答に関する詳細を書き込む Windows サービスがあります。テーブル。これを非同期にすることで何か得られますか? 私の現在の (簡素化された) Web サービス送信コードは次のとおりです。

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;
4

2 に答える 2

0

非同期メソッドを使用することで、非同期操作の結果を専用スレッドでブロックする必要がなくなります。非同期タスクが完了して再び生産的な作業になるまで、そのスレッドを解放して他のより生産的なタスクに取り組むことができます。

サービスの需要が高くなく、スレッドを実行するよりも多くの作業が必要な状況に頻繁にない場合は、心配する必要はありません。多くのビジネス アプリでは、使用率が非常に低いため、これは必要ありません。

大規模なアプリで十分な数のユーザーにサービスを提供していて、同時リクエストの数が非常に多い場合 (たとえそれがピーク使用時間であっても)、対応する非同期アプリへの切り替えがうまくいく可能性があります。

于 2012-12-10T22:11:56.037 に答える
0

個々の要求に対する応答を取得するのにかかる時間を気にしない場合は、いいえ、非同期にする特別な理由はありません。

一方、次のリクエストを開始する前に 1 つのリクエストが完全に終了するのを待っていると、大量の処理に問題が生じる可能性があります。このシナリオでは、コードの並列化を検討することをお勧めします。ただし、処理のためにデータベースに大量のアイテムが入力された場合にのみ、議論する価値があります。

于 2012-12-10T22:12:37.030 に答える