日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
老鳥談WCF回調(diào)使用方法

經(jīng)過長時間學(xué)習(xí)WCF,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。由于WCF回調(diào)方法并非運(yùn)行在主線程中,如果WCF回調(diào)方法需要更新與異步調(diào)用結(jié)果相關(guān)的界面,例如本例中的lbMessage控件,則需要將回調(diào)的調(diào)用封送(Marshal)到當(dāng)前主程序界面的同步上下文中。我們可以使用 SynchronizationContext以及它的SendOrPostCallback委托,對調(diào)用進(jìn)行封送:

10多年專業(yè)網(wǎng)絡(luò)公司歷程,堅持以創(chuàng)新為先導(dǎo)的網(wǎng)站服務(wù),服務(wù)超過1000+企業(yè)及個人,涉及網(wǎng)站設(shè)計、重慶APP軟件開發(fā)、微信開發(fā)、平面設(shè)計、互聯(lián)網(wǎng)整合營銷等多個領(lǐng)域。在不同行業(yè)和領(lǐng)域給人們的工作和生活帶來美好變化。

 
 
  1. public ExplorerClientForm()   
  2. {   
  3. InitializeComponent();   
  4. m_synchronizationContext = SynchronizationContext.Current;   
  5. }   
  6. private SynchronizationContext m_synchronizationContext;  

則WCF回調(diào)方法修改為:

 
 
  1. //callback method   
  2. void OnTransferCompleted(IAsyncResult result)   
  3. {   
  4. Stream stream = m_service.EndTransferDocument(result);   
  5. result.AsyncWaitHandle.Close();   
  6.  
  7. SendOrPostCallback callback = delegate   
  8. {   
  9. lbMessage.Text = string.Format("The file {0} had been transfered sucessfully.",   
  10. m_doc.FileName);   
  11. };   
  12. m_synchronizationContext.Send(callback,null);   
  13. }   

#T#在調(diào)用異步方法時,由于對BeginTransferDocument()和EndTransferDocument()方法的調(diào)用可能會在不同的方法體中,因而我將服務(wù)代理對象定義為private字段。如果希望將服務(wù)對象定義為一個局部變量,可以在調(diào)用BeginTransferDocument() 方法時,將代理對象傳遞到方法的asyncState參數(shù)中,然后在調(diào)用EndTransferDocument()方法之前,通過 IAsyncResult獲得準(zhǔn)確的服務(wù)代理對象:

 
 
  1. m_service.BeginTransferDocument(m_doc,OnTransferCompleted,m_service); 

將m_service作為asyncState對象傳入之后,在調(diào)用EndTransferDocument()方法之前,就可以根據(jù)它先獲得服務(wù)代理對象:

 
 
  1. IDocumentsExplorerService m_service = result.AsyncState as IDocumentsExplorerService;   
  2. Stream stream = m_service.EndTransferDocument(result);   
  3. //rest codes   

網(wǎng)站題目:老鳥談WCF回調(diào)使用方法
當(dāng)前URL:http://m.5511xx.com/article/cccpjoo.html