0

我创建了一个方法,它根据我提供的纬度、经度地址从 Foursquare(用于场所)和 Google(用于街道)获取数据。它旨在显示您周围的位置。然后将两个 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)我希望同时发送请求(所以我不必等待第一个得到第二个)。但是如果我使用 AsyncCallbacks,我怎么能做那个联合,因为我将有两个响应由两个不同的线程处理。

2) 如果超过 5 秒过去并且我没有来自其中一项服务的响应,我想返回我拥有的任何数据,并且不再关心响应

你将如何实施这样的事情?我认为这是一个很常见的情况,但我没有在网上找到任何解决方案。

谢谢

4

1 回答 1

0

你可以使用 Asyncmanager 来做这件事。请为此获取两个链接。这会对你有所帮助。

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 回答