Vb.net 异步Web服务调用的返回值

Vb.net 异步Web服务调用的返回值,vb.net,web-services,asynchronous,asmx,return-value,Vb.net,Web Services,Asynchronous,Asmx,Return Value,我在VS2005中使用VB.Net中的ASMXWeb服务。我正在调用web服务上的函数方法,该方法返回true或false值。如果我同步调用web方法,这很好,但是如果我想异步调用该方法,该函数将返回一个子函数,并且没有返回值;因此,我无法判断通话结果是真是假。有没有一种方法可以使用userState对象进行异步调用,但仍然可以得到正确或错误的结果 例如: Dim MyResult as Boolean = MyService.GetResult(10) Dim MyResult as Bool

我在VS2005中使用VB.Net中的ASMXWeb服务。我正在调用web服务上的函数方法,该方法返回true或false值。如果我同步调用web方法,这很好,但是如果我想异步调用该方法,该函数将返回一个子函数,并且没有返回值;因此,我无法判断通话结果是真是假。有没有一种方法可以使用userState对象进行异步调用,但仍然可以得到正确或错误的结果

例如:

Dim MyResult as Boolean = MyService.GetResult(10)
Dim MyResult as Boolean = MyServer.GetResultAsync(10) 

编译器抱怨这不起作用:表达式不产生值

你不说你在使用什么类型的应用程序,但是请看一看。

在VS为您创建的代理类中,必须存在类似BeginGetResult的东西-此方法返回接口IAsyncResult-在它们的帮助下,您可以在执行完成时检测它们。之后,您将获得一个值。

FYI,我正在从WinForms apps调用web服务,而不是ASP.Net。然后查看ASP.Net上的前一篇文章。谢谢John,这正是我要找的!由于.NET2.0中引入了新的事件驱动模型,因此在他的情况下不再需要Begin*/End*。