我在哪里可以find在.NET中开发的Windows服务的生命周期的详细视图?

我在哪里可以find在.NET中开发的Windows服务的生命周期的详细视图? 我这样提出我的问题,因为我不确定是否可以在这里发布足够详细的描述,但如果您认为可以请随时尝试。

一个不正确答案的例子是从MSDN页面粘贴描述: Windows服务应用程序简介 。 这还不够详细。 例如,服务是否卸载内存不足,因此调用Dispose方法? 或者只是通过OnStop方法停止,只有通过调用OnStart方法才能重新启动而不需要初始化?


由于我的问题已被回答,并同时提出了另一个问题,下面是一些对象生命周期的参考(我现在知道这也适用于服务)供未来的访问者使用这个问题:

StackOverflow – 什么是.NET对象生命周期?

tutorials.beginners.co.uk/read/id/188

developerfusion.com/article/1047/new-objectoriented-capabilities-in-vbnet/3/

请享用!

Solutions Collecting From Web of "我在哪里可以find在.NET中开发的Windows服务的生命周期的详细视图?"

Windows服务实际上是一个应用程序,它提供了一些额外的方法供服务管理器控制,即Stop()Start()Pause()Continue() (或等价物)。

当调用Start时,创建应用程序域,初始化服务类并调用Start()方法。 停止时,应用程序域从内存中卸载之前调用Stop()方法。

你可以看到这与任务管理器。 在调用启动之前,应用程序不在内存中,并且在停止完成后消失。

因此,我相信您的生命周期问题的答案在于标准.NET应用程序的生命周期,无论是命令行,winforms还是asp.net。

我还建议,如果你依赖于Dispose方法,那么你的设计中可能存在一个缺陷,在大多数情况下,Dispose清理的资源应该比服务主机调用你的组件更频繁地处理处置。 大多数服务都是在某个地方响应系统事件的机制,在这个事件来自非托管资源的情况下,您可能只想获取资源OnStart并将其释放给OnStop,在事件不是源于非托管空间,那么你可能想要抓住和释放非托管资源在更多的JustInTime类型的方式,只要你需要他们抓住他们作为资源,并释放他们(通过他们的Dispose方法)尽快。 为了进一步阅读检查何时以及如何使用配置和.Net配置模式