gpt4 book ai didi

C# Windows 服务并不总是在关机时停止

转载 作者:行者123 更新时间:2023-11-30 13:58:23 32 4
gpt4 key购买 nike

我用 c# 2010 创建了一个 Windows 服务。问题是当计算机关闭时服务没有时间停止并且 onstop 并不总是执行。我说不总是因为有时它会设法停止。我尝试过使用 vista 引入的 windows pre-shutdown notification,但是结果更好但不是绝对的。

有没有办法让 Windows 等待我的服务停止?有没有办法改变窗口停止服务的顺序?

最佳答案

根据 http://msdn.microsoft.com/en-us/library/windows/desktop/ms685149(v=vs.85).aspx ,在系统放弃并关闭之前,服务通常有大约 20 秒的时间关闭。

如果您的服务需要更多时间关闭,您可能能够发送回STOP_PENDING消息,但即便如此,您也只能在系统关闭前大约 125 秒认为您永远不会关闭,然后从您下面拉出地毯。

在 C# 中,您的服务调用 RequestAdditionalTime在关机期间。同样,不能保证您会得到额外的时间,但您可以提出要求。但是请记住,如果您要求更多时间,最好在该时间到期之前完成,或者您可以要求更多时间。但最终系统关闭您(同样,可能不到 2 分钟)。

一般来说,我发现构建服务时最好能够快速关闭它。如果您无法在几秒钟内关机,您可能需要更改设计。

关于C# Windows 服务并不总是在关机时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17306026/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com