自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細介紹WCF回調(diào)返回值說明

開發(fā) 后端
為每一個軟件行業(yè)的從業(yè)人員,無論是開發(fā)人員、項目經(jīng)理、還是測試人員,也要不斷適應這個趨勢,我認為WCF回調(diào)只會使我們的工作更簡單和更輕松。

客戶端實現(xiàn)WCF回調(diào)時,如果回調(diào)函數(shù)有返回值,那么該返回值類型只能為基本類型,不能為接口類型,否則服務在回調(diào)時系統(tǒng)無響應,***超時,不報任何錯誤。所以大家有communitysever的可以從里面獲得然后反編譯為自己所用,沒有的就到網(wǎng)絡上搜下吧,有許多資源呢!

由于WCF回調(diào)方法并非運行在主線程中,如果WCF回調(diào)方法需要更新與異步調(diào)用結(jié)果相關(guān)的界面,例如本例中的lbMessage控件,則需要將回調(diào)的調(diào)用封送(Marshal)到當前主程序界面的同步上下文中。我們可以使用 SynchronizationContext以及它的SendOrPostCallback委托,對調(diào)用進行封送:#t#

利用異步方式執(zhí)行服務操作,使得服務在執(zhí)行過程中不會阻塞主線程,當方法執(zhí)行完成后,通過AsyncCallback回調(diào)對應的方法,可以通知客戶端服務執(zhí)行完畢。例如:

  1. //Invoke it Asynchronously     
  2. m_service.BeginTransferDocument(m_doc,OnTransferCompleted,null);     
  3. //Do some work;     
  4. //callback method     
  5. void OnTransferCompleted(IAsyncResult result)     
  6. {     
  7. Stream stream = m_service.EndTransferDocument(result);     
  8. result.AsyncWaitHandle.Close();     
  9. lbMessage.Text = string.Format("The file {0} had been transfered sucessfully.",     
  10. m_doc.FileName);     
  11. }  

在調(diào)用BeginTransferDocument()方法之后,主線程不會被阻塞,仍然可以繼續(xù)執(zhí)行其它工作。而當服務方法執(zhí)行完畢之后,會自動調(diào)用WCF回調(diào)方法,執(zhí)行方法中的內(nèi)容。上述實現(xiàn)存在一個問題,就是對于lbMessage控件的操作。由于WCF回調(diào)方法并非運行在主線程中,如果回調(diào)方法需要更新與異步調(diào)用結(jié)果相關(guān)的界面,例如本例中的lbMessage控件,則需要將回調(diào)的調(diào)用封送(Marshal)到當前主程序界面的同步上下文中。我們可以使用 SynchronizationContext以及它的SendOrPostCallback委托,對調(diào)用進行封送:

  1. public ExplorerClientForm()  {  InitializeComponent();  m_synchronizationContext = SynchronizationContext.Current;  } 
  2.  private SynchronizationContext m_synchronizationContext;  }
責任編輯:chenqingxiang 來源: 機械工業(yè)出版社
相關(guān)推薦

2009-12-08 16:09:02

WCF消息

2009-12-07 11:11:41

WCF返回值

2010-03-02 16:50:34

WCF返回值

2009-12-25 17:21:13

ADO返回值

2009-11-09 17:30:20

WCF元數(shù)據(jù)

2009-12-22 15:02:40

WCF限流

2009-12-07 18:06:46

WCF框架

2009-12-08 09:00:14

WCF線程

2009-12-08 17:34:25

WCF的配置

2009-12-22 19:00:08

WCF回調(diào)

2009-11-09 13:47:22

WCF Stream操

2010-02-22 16:16:14

Python語法

2010-03-02 10:54:42

WCF回調(diào)操作

2009-11-09 15:58:07

WCF回調(diào)方法

2009-12-22 14:31:27

WCF序列化依賴屬性

2009-12-08 09:21:13

WCF數(shù)據(jù)量

2010-02-22 17:54:07

Python工具

2009-12-21 09:39:50

Oracle 存儲過程

2021-08-13 11:31:23

HTTP

2009-11-06 16:13:45

WCF回調(diào)
點贊
收藏

51CTO技術(shù)棧公眾號