3
我有一个工作正常的WCF服务,但现在我想调用其方法异步。在VS2010中,我在客户端重新添加了服务引用,并选中了异步方法的复选框。但是,现在当我调用MyMethodAsync()而不是MyMethod()时,没有任何反应。WCF调用异步方法
我在做什么错?
我有一个工作正常的WCF服务,但现在我想调用其方法异步。在VS2010中,我在客户端重新添加了服务引用,并选中了异步方法的复选框。但是,现在当我调用MyMethodAsync()而不是MyMethod()时,没有任何反应。WCF调用异步方法
我在做什么错?
您需要订阅成功回调。这里有一个article on MSDN,显示一个例子:立即
client.MyMethodCompleted += new EventHandler<MyMethodCompletedEventArgs>(MyMethodCallback);
client.MyMethodAsync(parameters);
MyMethodAsync
回报,一旦操作完成,它将作为参数传递的异步操作的结果MyMethodCallback
功能将被调用。
MyMethodCompletedEventArgs从哪里来? MyMethodCallback使用哪些参数类型?只是IAsyncResult? – Jonnster
@Jonnster,应该在生成的代理中定义'MyMethodCompletedEventArgs'。实际的类可能会根据您尝试调用的方法名称而被调用。就“MyMethodCallback”而言,它涉及两个参数:sender(类型为“object”)和event类型为MyMethodCompletedEventArgs的参数。 –
否... CompletedEventArgs未创建。这就是我问的原因。我认为他们会。它创建了所有其他的位,但不是EventArgs的一个。我尝试删除并重新开始,但仍然没有。 – Jonnster