我创建了一个 ATL 服务,在测试时我只是通过留下一个永远运行的 while 循环来保持它运行(见下面的代码)
HRESULT Run(_In_ int nShowCmd = SW_HIDE)
{
m_running = true;
HANDLE thread = (HANDLE)_beginthreadex(NULL, 0, &MyFunctionToRunInTheService, 0, 0, 0);
while(m_running);
return CAtlServiceModuleT::Run(nShowCmd);
}
我现在准备将其作为真正的服务运行,但不确定我该如何做?我翻遍了下一个,似乎找不到 ATL 服务的一个示例。
如果我删除线程代码并直接调用该方法,则服务始终处于启动状态。如果我删除循环,服务会立即启动和停止。有什么建议吗?