在哪里可以找到.NET中开发的Windows服务生命周期的详细视图?
在哪里可以找到.NET中开发的
Windows服务生命周期的详细视图?我以这种方式提出问题是因为我不确定在这里可以发布详细的描述,但如果您认为可以请随意尝试.
不正确答案的一个例子是从MSDN页面粘贴描述:Introduction to Windows Service Applications.它不够详细.例如,服务是否已从内存中卸载,因此调用了Dispose方法?或者只是通过OnStop方法停止,只是通过调用OnStart方法重新启动而不进行初始化? 由于我的问题已被回答,同时提出另一个问题,这里有一些对象生命周期的引用(我现在知道它也适用于服务)供未来访问者使用这个问题: StackOverflow – What is the .NET object life cycle? tutorials.beginners.co.uk/read/id/188 developerfusion.com/article/1047/new-objectoriented-capabilities-in-vbnet/3/ 请享用! 解决方法
Windows服务实际上是一个应用程序,为服务管理器提供了一些额外的方法来控制它,即Stop(),Start(),Pause(),Continue()(或等价物).
调用Start时,将创建应用程序域,初始化服务类并调用Start()方法.停止时,在从内存中卸载应用程序域之前调用Stop()方法. 你可以通过任务管理器看到这个.在调用启动之前,应用程序不存在于内存中,并且在Stop完成后它将消失. 因此,我相信您的生命周期问题的答案在于标准.NET应用程序的生命周期,无论是命令行,winforms还是asp.net. 我还建议,如果你依赖于Dispose方法,那么你的设计中可能存在一个缺陷,在大多数情况下,Dispose清理的资源应该比服务主机调用你的组件时更频繁地处理处置.大多数服务都是在某个地方响应系统事件的机制,在此事件来自非托管资源的情况下,您可能只想获取资源OnStart并将其释放到OnStop,在事件不是源自非托管的情况下那么你可能想要以更JustInTime类型的方式获取和释放非托管资源,只有当你需要它们时才将它们作为资源抓取并尽快释放它们(通过它们的Dispose方法).如需进一步阅读,请查看When and how to use dispose和.Net dispose pattern (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |