C++如何在工作和过程中停止服务

C++ how to stop service during the doing work and process

本文关键字:过程中 服务 工作 C++      更新时间:2023-10-16

我在C++和Windows服务应用程序中较新。

我不能将ATL用于Windows服务。

我想为Windows服务编写理解它们的基本代码。

现在,我为Windows服务编写了一个示例代码,该代码进入一个循环存在:

for (int i = 0; i < 600; i++) // for this source 600 equal 1 hours

现在,我希望如果用户在i = 100 SCM点击了stop the service,这个forloop在任何ibreak和服务都被停止。

有人可以帮助我吗?

好吧,我尝试获得最佳解决方案:

  1. 你必须使用线程
  2. 并且您必须将事件添加到您的程序中
  3. 最终,您可以使用以下代码来检查事件是否发生?

    WaitForSingleObject(g_ServiceStopEvent, 0) != WAIT_OBJECT_0

注意:不要忘记在ServiceCtrlHandler函数中,您必须使用:

in case SERVICE_CONTROL_STOP use : SetEvent(g_ServiceStopEvent);

上帝幸运