如何使用C ++停止服务线程的服务?

时间:2014-01-18 13:40:35

标签: c++ windows service

如何使用C ++停止服务线程的服务?

服务线程运行条件while循环。当此条件为false时,服务线程将退出循环。但即使我将服务状态设置为停止状态,它的状态也显示为“已启动”。

    Example:

    flag = 0
VOID WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
{
// Register ServiceCtrlHandler
//  
....
.... 

 startService();
}
    void startService()
    {
    while(!flag)
    {
    if(!<condition>)
    {
     flag = 1;
    }
    }
    SetServiceStatus(<..>) // call to win32 API to update Service status to Stopped
    }

1 个答案:

答案 0 :(得分:0)

您在示例中提到的ServiceCtrlHandler将处理控制请求并最终设置状态。

请按照The Complete Service Sample on MSDN了解处理控制请求调度程序线程与服务主线程之间的交互。

另请参阅Writing a ServiceMain FunctionWriting a Control Handler Function