如何实现WCF回调
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要为大家展示了"如何实现WCF回调",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何实现WCF回调"这篇文章吧。由于WCF回调方法并非运行在主线
千家信息网最后更新 2025年11月07日如何实现WCF回调
这篇文章主要为大家展示了"如何实现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回调"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
方法
对象
代理
服务
内容
篇文章
界面
学习
帮助
不同
上下
上下文
主程序
参数
变量
字段
局部
控件
易懂
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全学习手册
湖北省信息网络安全协会招聘
分布式数据库故障类型
绝地求生官方版本服务器
数据库的日期参数
桌面虚拟化网络技术的发展
软件开发设计规范下载
开放式我的世界服务器
工资录入数据库
网络技术基础的理解
上海网络安全事件预案
云耀云服务器什么时候上市的
服务器需要做端口映射
2018网络安全周宣传资料
溧阳安卓软件开发
软件开发工程学
软件开发团队组织方式
上海浦发银行软件开发基地
大数据项目服务器资源
无锡环保网络技术服务价格
参战人员数据库名单
软件开发类大赛项目集锦
郎溪自动化软件开发服务解决方案
消逝的光芒2连不上服务器
丰台区品质软件开发售后保障
蔬菜生鲜分拣配送软件开发
网络技术专业试题
软件开发应用最广泛的模型
互联网科技交通工具
拓普视频服务器手机端