C# 对WebService方法的异步调用(未创建已完成的()方法)

C# 对WebService方法的异步调用(未创建已完成的()方法),c#,asp.net,web-services,asynchronous,visual-studio-2013,C#,Asp.net,Web Services,Asynchronous,Visual Studio 2013,我正在Windows 8.1上使用VS2013 Ultimate创建一个Metro应用程序,该应用程序使用来自Webservice的数据(Webservice方法未标记为异步) 我在这里看到了很多使用Async()和Completed()方法的示例,但是: 添加服务引用后,该服务只包含[MethodName]Async()方法,但我在任何地方都找不到[MethodName]Completed()方法 ClientWebServiceSoapClient服务=新的ClientWebServiceS

我正在Windows 8.1上使用VS2013 Ultimate创建一个Metro应用程序,该应用程序使用来自Webservice的数据(Webservice方法未标记为异步)

我在这里看到了很多使用Async()和Completed()方法的示例,但是:

添加服务引用后,该服务只包含[MethodName]Async()方法,但我在任何地方都找不到[MethodName]Completed()方法

ClientWebServiceSoapClient服务=新的ClientWebServiceSoapClient();
OpenAsync();
TaskMethodTask=service.CallMethodAsync(新的CallMethodRequest(新的CallMethodRequestBody(“paramA”、“paramB”和“”));
bool returnValue=methodTask.Result.Body.CallMethodResult;
service.CloseAsync();
这显然是行不通的

如果无法在CallMethodCompleted()上放置处理程序,如何获得CallMethodAsync()的结果


还有,为什么我没有Completed()方法?

您使用的是.NET 4.5吗?您可以等待任务并获得
。结果
用async关键字修饰正在使用的wait in方法
ClientWebServiceSoapClient service = new ClientWebServiceSoapClient();
service.OpenAsync( );
Task<CallMethodResponse> methodTask = service.CallMethodAsync(new CallMethodRequest(new CallMethodRequestBody("paramA", "paramB", "")));
bool returnValue = methodTask.Result.Body.CallMethodResult;
service.CloseAsync();