【发布时间】:2017-04-01 03:23:35
【问题描述】:
我需要调用 Web 服务,因此我将 Web 服务添加为 Web 参考,并且可以调用它。现在我需要使该调用异步,因为它需要下载大量数据并且需要大量时间。我尝试使用 async/await 方法,但我不能这样做,因为 web 服务中的方法不是异步的。
原码:
public static void validateLogin(JsonParameters _param, ref ValidateCredentials result, ref string excep_error)
{
var _mobileService = new MobileService();
_mobileService.Url = AppParam.IISSTRING + "/UrlAddressReference";
try
{
result = _mobileService.downloaddata(_param);
}
catch (Exception ex)
{
excep_error = ex.Message;
}
}
我尝试添加异步任务来代替 void 以使方法异步,但是如何等待 Web 服务响应?
在我将 Web 服务添加为 Web 引用后,我可以看到它为其中的每个方法创建了一个异步方法和完成的事件。我该如何使用它们? (例如:downloaddata", a method namedownloaddataasync`,以及事件“downloaddatacompleted”)
有没有办法做到这一点,还是我需要更改网络服务?
【问题讨论】:
-
MobileService.downloaddata调用的实现是什么样的,因为这很可能需要从那里开始。
标签: android web-services asynchronous xamarin async-await