Windows services 什么';编写互相更新的Windows服务的正确方法是什么?

Windows services 什么';编写互相更新的Windows服务的正确方法是什么?,windows-services,updates,Windows Services,Updates,我有两个Windows服务,我们称之为X和Y。X处理我的应用程序的一般功能,Y的存在是为了使X保持最新。它通过检查X的更新来实现这一点。如果存在更新,它将下载更新,关闭X,复制新文件,然后重新启动X 但是,我希望Y对X做同样的事情。不过,我担心的是,每个服务都可能相互关闭,这意味着它们永远不会重新启动 我可以想出三种解决办法: 维护第三个服务Z,它 永远不会更新,这只是检查 如果每个服务都已关闭 超过一分钟,如果是这样, 重新启动它们。这不是一个好主意 不管怎么说,拥有是件坏事,但它 好像是我喜

我有两个Windows服务,我们称之为X和Y。X处理我的应用程序的一般功能,Y的存在是为了使X保持最新。它通过检查X的更新来实现这一点。如果存在更新,它将下载更新,关闭X,复制新文件,然后重新启动X

但是,我希望Y对X做同样的事情。不过,我担心的是,每个服务都可能相互关闭,这意味着它们永远不会重新启动

我可以想出三种解决办法:

  • 维护第三个服务Z,它 永远不会更新,这只是检查 如果每个服务都已关闭 超过一分钟,如果是这样, 重新启动它们。这不是一个好主意 不管怎么说,拥有是件坏事,但它 好像是我喜欢的东西 要能够更新,请 介绍了原始问题, 再说一遍
  • 在注册表中维护锁, 这样X检查Y是否已更新 在执行更新之前,以及 反之亦然
  • 让每个服务在其OnStop方法中启动其他服务。不过,这似乎有点老套

  • 这个问题的正确解决方案是什么?

    我最终使用了System.Threading.Mutex。这两个服务将始终在同一台机器上运行,因此这是一个超级简单的解决方案。

    我最终使用了System.Threading.Mutex。这两个服务将始终在同一台机器上运行,因此这是一个超级简单的解决方案