在 GUI 上显示仍在进行中的服务器计数器
本文关键字:服务器 计数器 进行中 GUI 显示 | 更新日期: 2023-09-27 18:34:51
我的问题很简单,但不知何故我迷路了。
我有一个包含 ClientProject 和 ServerProject (WCF 服务应用程序( 的项目,其中包含我的 Service 类及其接口。
该服务运行方法的迭代次数很少。
我需要做的就是在 GUI 上实时显示服务的迭代次数,
以便用户能够在运行时了解服务活动状态。
我见过在服务上声明委托服务器事件处理程序的示例,
并在客户端注册该事件。
例如:
服务项目:
public delegate void ServerEventHandler(object sender, EventArgs e);
public event ServerEventHandler ServerEvent; <br/><br/>
客户项目:
public Client(Server s)
{
s.ServerEvent += new Server.ServerEventHandler(Subscribe);
}
但是我不知道如何在我的 WCF 项目上实现它,因为我的客户端和服务器是分开的项目,因此我可以在我的 ClientProject 上获取我的 ServiceProject 值的唯一方法是通过它的 ServiceReference。
我不明白客户端如何拥有服务实例,以及如何通过它访问 ServerEvent 属性。
我错过了什么?我必须在合同中提及任何内容吗?
还是有其他方法可以实现它?
如果你能帮助我,我将不胜感激。
你可以实现WSDualHttpBinding,它允许你定义回调合约WCF 为每个操作提供异步差异。您可以在回调操作上调用异步操作,以便服务器进程将继续运行。甚至回调也会有数据合约,所以只需创建DataContract类,它将保存你想要在UI中显示的所有值。将回调想象为客户端公开的服务,以便服务器可以通过调用适当的操作来通知客户端。