启动Windows应用程序是否始终在启动应用程序之前运行?

时间:2018-04-27 14:38:46

标签: c# .net windows-services

我有一个依赖于服务的启动应用程序(也在启动时运行)。服务总是先运行吗?

我的目标是知道我的应用程序是否可以假设服务未运行 - 它尚未安装(或发生了一些错误),应通知用户或应安装服务。如果这不一定是真的(服务首先运行),我会让应用程序等待一段时间并重新检查,然后提醒用户或尝试安装服务。 (10秒?2分钟?)

修改

我知道服务可能故意没有立即执行(Delayed Start)。我没有提到那个。

更多信息:该服务也是我的。应用程序在首次运行时安装,要求用户提供管理员权限。该应用程序是一个UI应用程序,因此无法作为服务运行。

1 个答案:

答案 0 :(得分:1)

  

服务是否总是先运行

不。当然不。该服务可能需要很长时间才能启动,或者它的依赖项无法启动,它必须等待该依赖项重试等。

我自己经历过Windows时间服务

但是你有几个选择

  1. 使用任务计划程序并将触发条件设置为“On a event”,并确定特定服务在启动时将生成哪些Eventlog条目。

  2. 使您的应用程序成为一项服务并声明它依赖于它所需的服务。如果未安装该服务,您将收到一条错误消息,指出不符合依赖关系。

  3. 允许应用程序启动,但每隔X秒检查一次,以确保服务已启动,然后再继续。