如何使GUI等待Windows服务?

kyr*_*isu 7 c# windows-services

我写了一个Windows服务和一个gui.当然gui主要取决于服务.gui有没有办法等待服务?有时我需要从gui重新加载服务配置并重新启动服务.

我正在考虑2个解决方案:1.使用while和sleep等待服务控制器状态改变(当然最简单的解决方案:P)2.在某处实现INotifiPropertyChanged接口(这对于这个琐碎的问题看起来很复杂).

我想知道有更优雅的方式吗?有什么事我在某个地方失踪吗?

Tom*_*ier 8

ServiceController有一个WaitForStatus方法,在其中传递一个ServiceControllerStatus类型的参数.你可以像这样使用它:

controller.WaitForStatus(ServiceControllerStatus.Running);
Run Code Online (Sandbox Code Playgroud)

  • 这正是我所需要的.很抱歉没有注意到这种方法.除此之外,我喝醉了很多咖啡,我正在寻找一个事件:P(我的坏).就像对案例的补充一样 - 我需要使用Refresh()方法来更新服务数据.否则它甚至在Stop()之后显示为运行(但它可能与我正在使用的Windows 7连接). (2认同)