我创建了一个方法,根据我提供的纬度,经度地址,从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秒并且我没有其中一个服务的响应,我想返回我拥有的任何数据,而不再关心响应
你会如何实现这样的事情?我认为这是一种非常常见的情况,但我没有在网上找到任何解决方案。
谢谢
答案 0 :(得分:0)
你可以使用Asyncmanager来做这件事。 请获取两个链接。这会对你有所帮助。
1.http://www.devproconnections.com/article/aspnet2/calling-web-services-asynchronously
2.http://www.c-sharpcorner.com/UploadFile/rmcochran/multithreadasyncwebservice05262007094719AM/multithreadasyncwebservice.aspx