WCF:从服务内部访问Windows窗体
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了WCF:从服务内部访问Windows窗体,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1101字,纯文字阅读大概需要2分钟。
内容图文
![WCF:从服务内部访问Windows窗体](/upload/InfoBanner/zyjiaocheng/945/c65e8e1285a34a838d9be2c8c6f6457a.jpg)
如何实现这种情况?
我有一个WCF服务托管在Windows窗体中,并且每当该服务的客户端调用该服务上的方法时,我都希望该服务能够将消息写入Windows窗体上的文本框.
我当时想让WCF服务成为Singleton,使用表单实现的接口将表单传递给服务,然后存储该实例.然后,当客户端调用该服务时,我可以简单地使用表单实例将其写入文本框.
我不能这样做,因为我无法将表单传递到WCF服务中.
有任何想法或代码示例吗?
解决方法:
服务实例和Windows窗体在两个单独的线程中运行,并且不能仅仅从服务实例更新主UI线程上的UI元素.
您需要使用同步上下文和委托,以便从服务线程正确安全地更新UI.
参见this CodeProject文章-关于中间内容,作者谈论了“ UI线程问题”.这基本上就是您需要做的:
SendOrPostCallback callback =
delegate (object state)
{
yourListBox.Add(state.ToString());
};
_uiSyncContext.Post(callback, guestName);
有关该主题的全面介绍,请参见Juval Lowy的MSDN文章“ WCF Synchronization Contexts”.
在Winforms应用程序中托管WCF服务对我来说似乎是个坏主意-首先是由于所有这些线程问题,其次,只有在Winforms应用程序启动后,它才可以工作.您不能将WCF服务放入控制台应用程序或Windows NT Service,然后仅创建基于Winforms的监视应用程序,该应用程序可能会检查例如接收请求消息之类的数据库表?
渣
内容总结
以上是互联网集市为您收集整理的WCF:从服务内部访问Windows窗体全部内容,希望文章能够帮你解决WCF:从服务内部访问Windows窗体所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。