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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
分析客戶端執(zhí)行WCF異步調(diào)用

剛剛做完一個WCF的一個項(xiàng)目,把我我的一點(diǎn)經(jīng)驗(yàn)傳授給大家一點(diǎn),我們今天先來看看WCF異步調(diào)用,客戶端究竟應(yīng)該如何執(zhí)行WCF異步調(diào)用呢?如果采用編程方式獲得服務(wù)代理對象,這一問題會變得比較糟糕。因?yàn)槲覍⒎?wù)契約的定義單獨(dú)形成了一個程序集,并在客戶端直接引用了它。然而,在這樣的服務(wù)契約程序集中,是沒有包含異步方法的定義的。因此,我需要修改在客戶端的服務(wù)定義,增加操作的異步方法。這無疑為服務(wù)契約的重用帶來障礙。至少,我們需要在客戶端維持一份具有異步方法的服務(wù)契約。

所幸,在客戶端決定采用異步方式調(diào)用我所設(shè)計(jì)的服務(wù)操作時,雖然需要修改客戶端的服務(wù)契約接口,但并不會影響服務(wù)端的契約定義。因此,服務(wù)端的契約定義可以保持不變,而在客戶端則修改接口定義如下:

 
 
  1. [ServiceContract]  
  2. public interface IDocumentsExplorerService  
  3. {  
  4. [OperationContract]  
  5. Stream TransferDocument(Document document);  
  6.  
  7. [OperationContract(AsyncPattern = true)]  
  8. IAsyncResult BeginTransferDocument(Document document,  
  9. AsyncCallback callback, object asyncState);  
  10.  
  11. Stream EndTransferDocument(IAsyncResult result);  
  12. }  

#T#注意,在BeginTransferDocument()方法上,必須在OperationContractAttribute中將AsyncPattern屬性值設(shè)置為true,因?yàn)樗哪J(rèn)值為false。合理地利用服務(wù)的異步調(diào)用,可以有效地提高系統(tǒng)性能,合理分配任務(wù)的執(zhí)行。特別對于UI應(yīng)用程序而言,可以提高UI的響應(yīng)速度,改善用戶體驗(yàn)。在我編寫的應(yīng)用程序中,下載的文件如果很大,就有必要采用異步方式。WCF異步調(diào)用方式如下:

 
 
  1. BasicHttpBinding binding = new BasicHttpBinding();  
  2. binding.SendTimeout = TimeSpan.FromMinutes(10);  
  3. binding.TransferMode = TransferMode.Streamed;  
  4. binding.MaxReceivedMessageSize = 9223372036854775807;  
  5. EndpointAddress address = new EndpointAddress  
  6. ("http://localhost:8008/DocumentExplorerService");  
  7. ChannelFactory factory =  
  8. new ChannelFactory(binding,address);  
  9. m_service = factory.CreateChannel();  
  10.  
  11. ……  
  12. IAsyncResult result = m_service.BeginTransferDocument(doc,null,null);  
  13. result.AsyncWaitHandle.WaitOne();  
  14. Stream stream = m_service.EndTransferDocument(result);  

網(wǎng)站欄目:分析客戶端執(zhí)行WCF異步調(diào)用
分享URL:http://www.5511xx.com/article/ccsssds.html