3

我确信这是一个非常常见的案例,但我在 MSDN 上找不到太多关于它的信息。

假设我有一个正在执行事务的服务,当我收到停止请求时,我想确保在实际进程终止之前我已经完成了当前事务。

我知道 Windows 似乎有一个“停止”状态,但我不确定如何从 ServiceBase.OnStop 方法控制它。

一旦我注册了停止请求,我是否应该从 OnStop 返回?如果是这样,我如何指示我何时真正完成?

或者我应该阻止并且在当前事务完成之前不从 OnStop 返回?(即在调用 OnStop 和 OnStop 返回之间,windows 会自动将服务置于“停止”状态)

4

1 回答 1

2

如果你有某种线程在做事务,你应该在 OnStop 中等待它完成(或被取消,你的决定)。如果 OnStop 返回,服务应该停止,而不仅仅是标记为停止或类似的东西。

于 2013-03-11T10:21:35.573 回答