我有我用來調用異步方法,像這樣一個WCF客戶端代理:如何關閉客戶端代理與異步調用WCF
var prox = new DoSomethingServiceClient("BasicHttpBinding_IDoSomethingService");
prox.DoSomethingCompleted += new EventHandler<AsyncCompletedEventArgs>(svcref_DoSomethingCompleted);
prox.DoSomethingAsync(0, Guid.NewGuid());
我什麼時候關閉/中止代理?
我在svcref_DoSomethingCompleted
的第一行使用sender對象嗎?
我在MS文檔中看到他們在主線程中關閉代理,而不是在回調中。這是不錯的做法嗎?看來我錯了:
http://msdn.microsoft.com/en-us/library/ms730059(v=vs.110).aspx
我也發現了這一點,使用基於任務的異步這表明你關閉代理在委託的回調,這是我最好樣的期待:
http://fun-with-blackhawk.blogspot.com/2010/03/wcf-exception-handling-in-asynchronous.html
我猜的樣本工程,因爲有一個堵'到Console.ReadLine()''之前客戶端.Close()'。如果它不在那裏,它可能會在通話完成之前關閉客戶端。 –