2011-06-19 47 views
0

我有一個簡單的控制檯應用程序,通過net.tcp調用WCF服務並上傳文件(使用Stream)。 WCF服務是自託管的,Framework 4.0。WCF IAsync或其他方式顯示客戶端進度?

我正在尋找一種方法,現在在客戶端添加一些「進度信息」。這應該通過手寫IASync操作還是其他什麼來完成?

回答

2

這實際上很簡單,雖然解決方案與WCF沒有任何關係。創建一個包裝Stream您將實際源流傳遞到的子類。在各種Read覆蓋中,首先委託給您打包的底層流。接下來,使用讀取的字節數增加一個自定義屬性,並啓動自定義事件,或者在自定義Stream子類上實現INotifyPropertyChanged。通過這樣做,當WCF從包裝流中讀取數據以通過線路發送字節時,客戶端將能夠觀察到這些更改。

+0

謝謝。很酷。我從來沒有想過爲此做INotifyPropertyChanged,我做到了,它運作良好! – Snowy