0

提供した緯度経度の住所に基づいて、Foursquare (会場用) と Google (道路用) からデータを取得するメソッドを作成しました。あなたの周りの場所を表示することを目的としています。次に、2 つの API からの結果の名前がリストにまとめられます。

次のようになります。

 var httpFoursquareResponse = (HttpWebResponse)httpFoursquareWebRequest.GetResponse();
 var httpGoogleResponse = (HttpWebResponse)httpGoogleWebRequest.GetResponse();
 List<string> foursquarePlacesNames=getNames(httpFoursquareResponse);
 List<string> googleStreetsNames=getStreets(httpFoursquareResponse);
 var result=foursquarePlacesNames.Union(googleStreetsNames);
 return result;

問題: 1) リクエストを同時に送信したい (そのため、最初のリクエストが 2 番目のリクエストを受け取るのを待つ必要はありません)。しかし、AsyncCallbacks を使用する場合、2 つの異なるスレッドで 2 つの応答を処理するという事実を考えると、どうすればその結合を行うことができるでしょうか。

2) 5 秒以上経過しても、いずれかのサービスから応答がない場合は、自分が持っているデータは何でも返し、もう応答は気にしません。

このようなものを実装するにはどうすればよいでしょうか。これはかなり一般的なシナリオだと思いますが、Web 上で解決策が見つかりませんでした。

ありがとうございました

4

1 に答える 1

0

これには Asyncmanager を使用できます。このための 2 つのリンクを取得してください。これはあなたを助けるでしょう。

1.http://www.devproconnections.com/article/aspnet2/calling-web-services-asynchronously

2.http://www.c-sharpcorner.com/UploadFile/rmcochran/multithreadasyncwebservice05262007094719AM/multithreadasyncwebservice.aspx

于 2012-09-17T09:29:44.950 に答える