老鸟谈wcf回调使用方法

上传人:j****9 文档编号:45535825 上传时间:2018-06-17 格式:DOC 页数:2 大小:33KB
返回 下载 相关 举报
老鸟谈wcf回调使用方法_第1页
第1页 / 共2页
老鸟谈wcf回调使用方法_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《老鸟谈wcf回调使用方法》由会员分享,可在线阅读,更多相关《老鸟谈wcf回调使用方法(2页珍藏版)》请在金锄头文库上搜索。

1、老鸟谈 WCF 回调使用方法经过长时间学习 WCF,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。由于 WCF 回调方法并非运行在主线程中,如果 WCF 回调方法需要更新与异步调用结果相关的界面,例如本例中的 lbMessage 控件,则需要将回调的调用封送(Marshal)到当前主程序界面的同步上下文中。我们可以使用 SynchronizationContext 以及它的 SendOrPostCallback 委托,对调用进行封送:1.public ExplorerClientForm() 2. 3.InitializeComponent(); 4.m_synchr

2、onizationContext = SynchronizationContext.Current; 5. 6.private SynchronizationContext m_synchronizationContext; 则 WCF 回调方法修改为:7./callback method 8.void OnTransferCompleted(IAsyncResult result) 9. 10.Stream stream = m_service.EndTransferDocument(result); 11.result.AsyncWaitHandle.Close(); 12. 13.Sen

3、dOrPostCallback callback = delegate 14. 15.lbMessage.Text = string.Format(“The file 0 had been transfered sucessfully.“, 16.m_doc.FileName); 17.; 18.m_synchronizationContext.Send(callback,null); 19. o解疑什么是 WCF 通道 oWCF 学习笔记之数据报信息交换模式案例分. o代码分析 WCF 通道监听器原理 o为你解决 WCF 异常问题 o深入挖掘 WCF REST 服务 在调用异步方法时,由于对

4、 BeginTransferDocument()和 EndTransferDocument()方法的调用可能会在不同的方法体中,因而我将服务代理对象定义为 private 字段。如果希望将服务对象定义为一个局部变量,可以在调用 BeginTransferDocument() 方法时,将代理对象传递到方法的 asyncState 参数中,然后在调用 EndTransferDocument()方法之前,通过 IAsyncResult 获得准确的服务代理对象: 25.m_service.BeginTransferDocument(m_doc,OnTransferCompleted,m_service); 将 m_service 作为 asyncState 对象传入之后,在调用 EndTransferDocument()方法之前,就可以根据它先获得服务代理对象:26.IDocumentsExplorerService m_service = result.AsyncState as IDocumentsExplorerService; 27.Stream stream = m_service.EndTransferDocument(result); 28./rest codes

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号