偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

利用異步方式執(zhí)行服務(wù)操作,使得服務(wù)在執(zhí)行過程中不會(huì)阻塞主線程,當(dāng)方法執(zhí)行完成后,通過AsyncCallback回調(diào)對(duì)應(yīng)的方法,可以通知客戶端服務(wù)執(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()方法之后,主線程不會(huì)被阻塞,仍然可以繼續(xù)執(zhí)行其它工作。而當(dāng)服務(wù)方法執(zhí)行完畢之后,會(huì)自動(dòng)調(diào)用WCF回調(diào)方法,執(zhí)行方法中的內(nèi)容。上述實(shí)現(xiàn)存在一個(gè)問題,就是對(duì)于lbMessage控件的操作。由于WCF回調(diào)方法并非運(yùn)行在主線程中,如果回調(diào)方法需要更新與異步調(diào)用結(jié)果相關(guān)的界面,例如本例中的lbMessage控件,則需要將回調(diào)的調(diào)用封送(Marshal)到當(dāng)前主程序界面的同步上下文中。我們可以使用 SynchronizationContext以及它的SendOrPostCallback委托,對(duì)調(diào)用進(jìn)行封送:

  1. public ExplorerClientForm()  {  InitializeComponent();  m_synchronizationContext = SynchronizationContext.Current;  } 
  2.  private SynchronizationContext m_synchronizationContext;  }
責(zé)任編輯:chenqingxiang 來源: 機(jī)械工業(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-22 19:00:08

WCF回調(diào)

2009-12-08 17:34:25

WCF的配置

2009-11-09 13:47:22

WCF Stream操

2010-02-22 16:16:14

Python語法

2009-11-09 15:58:07

WCF回調(diào)方法

2010-03-02 10:54:42

WCF回調(diào)操作

2009-12-22 14:31:27

WCF序列化依賴屬性

2009-12-08 09:21:13

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

2010-03-01 15:12:53

WCF回調(diào)契約

2009-11-06 16:13:45

WCF回調(diào)

2009-12-21 09:39:50

Oracle 存儲(chǔ)過程

2010-02-22 17:54:07

Python工具
點(diǎn)贊
收藏

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