问题  从客户端调用方法时,如何在WCF服务端更新GUI

已加入
2015年10月13日
留言内容
3
编程经验
5-10
有人可以帮助还是共享一个简单的代码来显示,当客户端调用服务方法时,如何在.NET C#WCF服务端更新GUI。

看起来当使用myServiceHost.Open()打开服务时,它将创建自己的线程,而GUI在自己的线程上运行。现在,当客户端应用程序调用此方法时,该服务将无法进入GUI控件。

提前谢谢你的帮助。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,521
地点
悉尼,澳大利亚
编程经验
10+
您的问题似乎没有道理。服务甚至如何知道GUI存在?该服务仅接收请求并将数据发送回去。 GUI应用程序可以根据这些请求的结果自行更新。
 
已加入
2015年10月13日
留言内容
3
编程经验
5-10
抱歉,我在这里没有完整介绍问题。此WCF服务未安装为Windows服务。它具有GUI,通过它可以在应用程序中运行WCF服务。现在,WCF服务在其自己的线程中运行,而GUI在主线程中运行。因此,当调用来自客户端时,您将无法从该方法访问GUI控件。您如何在GUI控件上的调用中显示数据?
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,040
地点
挪威
编程经验
10+
当您使用ServiceHost自托管服务时,可以使用服务的单例实例对此进行初始化,这将使您可以侦听该类中的事件。
当您的服务收到请求时,服务类方法可以引发事件并传递接收到的数据,然后GUI可以通过其事件处理程序接收此数据。
GUI事件处理程序将在辅助线程上下文中调用,要至少在Windows Forms环境中使用GUI控件,必须使用Control.Invoke将执行传递给GUI线程。

一种不同的方法可能是使用WCF消息检查器。
 
最佳 底部