WCF、sliverlight非同步返回分析
我現在開發的東西,使用WCF和sliverlght配合,其中WCF提供服務,sliverlight做前段顯示,碰到很多sliverlight應用返回的問題。其中一個是迴圈,一個是等待阻塞
OK,
按照這個為例子:
通常呼叫返回值的方法是呼叫e.Result,呼叫方法是
{ client.GetRandomAsync(100); client.GetRandomCompleted += new EventHandler } void client_GetRandomCompleted(object sender, WCFTest.DataServiceRef.GetRandomCompletedEventArgs e) { this.txtData.Text = "The return data is "+e.Result.ToString(); } |
其中GetRandomAsync(100);可以視為給wcf傳送資訊,啟動GetRandom事件。
而 client.GetRandomCompleted += new EventHandler
而,WCFTest.DataServiceRef.GetRandomCompletedEventArgs包含返回值,就是e.Result。這樣在觸發中處理返回值。
不過這樣要寫新的方法,而且很多方法內的變數要變成全域性變數才可以傳值,尤其是在用多個返回值的時候,大大增加麻煩。一種更靈活的返回值處理方法是
{ client.getRandomAsync(i); client.getRandomCompleted += (sender2, e2) => } |
這個是一個簡單的方法,其中sender2, e2,分別是觸發和返回,可以直接在後面進行處理,簡單很多。
OK,我常常會有一個問題,就是等待返回值阻塞的問題,比如我要從WCF裡面獲得返回值,再進行下一步操作。
比較麻煩的方法是,把下一步操作放在完成觸發的方法裡面,比如
|
如果要等待的時間太多了,或者邏輯情況很麻煩的話,就頭大了。比如這個情況
{ client.getRandomAsync(6); client.getRandomCompleted += new EventHandler MessageBox.Show(da.ToString()); } void client_getRandomCompleted(object sender, getRandomCompletedEventArgs e) { da += e.Result; MessageBox.Show(da.ToString()); } |
就會出現兩個不同的結果,一個是0,一個是後來的WCF的返回值。
解決這個問題,一個是改變程式設計,還有就是用AsyncCallback parameter and wrappers for Begin / End.
這個後面再說
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-629273/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- WCF中的非同步回撥非同步
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 同步、非同步、阻塞、非阻塞非同步
- 同步非同步 與 阻塞非阻塞非同步
- 理解阻塞、非阻塞、同步、非同步非同步
- 同步、非同步,阻塞、非阻塞理解非同步
- 同步、非同步、阻塞與非阻塞非同步
- 同步、非同步、阻塞和非阻塞非同步
- [轉]阻塞/非阻塞與同步/非同步非同步
- 同步與非同步 阻塞與非阻塞非同步
- java同步非阻塞IOJava
- 非同步和非阻塞非同步
- 同步、非同步、阻塞、非阻塞的區別非同步
- Silverlight同步(Synchronous)呼叫WCF服務(轉)
- AJAX的同步返回結果值
- 徹底搞懂同步非同步與阻塞非阻塞非同步
- IO - 同步 非同步 阻塞 非阻塞的區別非同步
- 同步、非同步、阻塞、非阻塞的簡單理解非同步
- 同步與非同步、阻塞與非阻塞的理解非同步
- 同步阻塞、同步非阻塞、多路複用的介紹
- 大白話搞懂什麼是同步/非同步/阻塞/非阻塞非同步
- socket阻塞與非阻塞,同步與非同步、I/O模型非同步模型
- 網路IO之阻塞、非阻塞、同步、非同步總結非同步
- Java 非阻塞 IO 和非同步 IOJava非同步
- 真正的 Tornado 非同步非阻塞非同步
- tornado非同步請求非阻塞非同步
- 怎樣理解阻塞非阻塞與同步非同步的區別?非同步
- 一篇文章讀懂阻塞,非阻塞,同步,非同步非同步
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- 程式執行緒、同步非同步、阻塞非阻塞、併發並行執行緒非同步並行
- 聊聊執行緒與程式 & 阻塞與非阻塞 & 同步與非同步執行緒非同步
- 從同步原語看非阻塞同步以及Java中的應用Java
- 對於同步、非同步、阻塞、非阻塞的幾點淺薄理解非同步
- 併發-0-同步/非同步/阻塞/非阻塞/程式/執行緒非同步執行緒
- 如何解讀 Java IO、NIO 中的同步阻塞與同步非阻塞?Java
- Socket程式設計中的同步、非同步、阻塞和非阻塞(轉)程式設計非同步
- MSMQ In WCFMQ