我很好奇Main()
方法在Windows服务中的工作原理与服务控制管理器的关系。什么时候执行?它是如何挂钩操作系统的?是否在安装服务时执行?我知道它是在SCM调用OnStart()时执行的,OnStop()它已经在运行,所以我们不会再次执行它。
如果有人对这方面有很多了解并且可以详细说明我会很感激。
我是一名经验丰富的程序员,我不需要描述主要方法的一般用途......它是如何与Windows服务一起使用的。
答案 0 :(得分:13)
当您使用控制面板小程序告诉服务启动时,SCM启动该过程;这会导致Main()内部的代码运行。 Main()方法中的ServiceBase.Run()行将关联的服务挂钩到SCM中,然后SCM为ServiceBase.Run()方法调用中指定的每个服务调用OnStart()方法。