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