apa*_*ant 3 c# service windows-services
我使用c#2010创建了一个Windows服务.问题是当计算机关闭时,服务没有时间停止并且onstop并不总是在执行.我说并不总是因为有时它会设法停止.我曾尝试使用在vista中引入的Windows预关闭通知,但结果更好但不是绝对的.
无论如何让Windows等待我的服务停止?反正有没有改变订单窗口停止服务?
根据http://msdn.microsoft.com/en-us/library/windows/desktop/ms685149(v=vs.85).aspx,服务通常在系统放弃和关闭之前大约需要20秒才能关闭无论如何.
如果你的服务需要更多的时间来关闭,你或许可以发STOP_PENDING回信息,但即便如此,你还是要限制在大约125秒之后,系统才能确定你永远不会关闭,并从你的下方拉出地毯.
在C#中,您将在关机期间调用RequestAdditionalTime服务.同样,不能保证你会得到额外的时间,但你可以要求它.但请记住,如果你要求更多的时间,那么最好在那个时间到期之前完成,或者你可以要求更多.但最终系统会让你失望(再次,可能在不到2分钟内).
一般来说,我发现最好是构建您的服务,以便您可以快速关闭它.如果您在几秒钟内无法关闭,则可能需要更改设计.
| 归档时间: |
|
| 查看次数: |
5860 次 |
| 最近记录: |