【发布时间】:2013-06-25 19:38:57
【问题描述】:
我用 c# 2010 创建了一个 windows 服务。问题是当计算机关闭时,服务没有时间停止并且 onstop 并不总是执行。我说不总是因为有时它会停止。我曾尝试使用在 vista 中引入的 Windows 关机前通知,但结果更好但不是绝对的。
有没有办法让 Windows 等待我的服务停止? 有没有办法改变订单窗口停止服务?
【问题讨论】:
-
为什么您的服务没有足够的时间停止?您能否更改服务以使其准备好更快地停止?
-
我的服务 on_stop 只做一件事。它更新 sql server 上的记录。这需要几毫秒:)
-
您确定您的服务没有卡在做其他事情,因此没有从 Windows 获取事件吗?
-
几毫秒应该没问题。碰巧,SQL Server 不在同一台计算机上,是吗?如果是,它可能会在您的服务关闭之前关闭。是否可以在每次数据更改时更新记录,或者在计时器上每隔几秒更新一次?这样您就可以毫不拖延地退出。
-
我已经检查过了。我有两行代码停止。一个停止的写入日志开始,一个是 sql 更新。关机后我检查日志。大约 60% 停止运行并保存日志。 40% 没有日志,没有 sql 更新。
标签: c# service windows-services