亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現WCF回調

發布時間:2021-11-03 14:44:45 來源:億速云 閱讀:128 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“如何實現WCF回調”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何實現WCF回調”這篇文章吧。

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

public ExplorerClientForm()   {   InitializeComponent();   m_synchronizationContext = SynchronizationContext.Current;   }   private SynchronizationContext m_synchronizationContext;

則WCF回調方法修改為:

//callback method   void OnTransferCompleted(IAsyncResult result)   {   Stream stream = m_service.EndTransferDocument(result);   result.AsyncWaitHandle.Close();    SendOrPostCallback callback = delegate   {   lbMessage.Text = string.Format("The file {0} had been transfered sucessfully.",   m_doc.FileName);   };   m_synchronizationContext.Send(callback,null);   }

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

m_service.BeginTransferDocument(m_doc,OnTransferCompleted,m_service);

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

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

以上是“如何實現WCF回調”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

wcf
AI

汽车| 蛟河市| 筠连县| 余江县| 贵州省| 罗甸县| 灵寿县| 城市| 日土县| 噶尔县| 邵东县| 玉山县| 信丰县| 临海市| 三都| 藁城市| 加查县| 伊春市| 汉阴县| 拜城县| 长泰县| 扶绥县| 宽城| 吕梁市| 孟州市| 正安县| 融水| 塔河县| 铜山县| 浮梁县| 肇东市| 黄浦区| 屯门区| 克什克腾旗| 通许县| 年辖:市辖区| 龙江县| 页游| 奇台县| 西贡区| 昌宁县|