http 要求を受信し、1 時間以上実行される可能性のあるプロセスを起動する Windows サービスがあります。プロセスが終了したときにメイン サービスで通知を受け取る必要があります。また、サービスが終了したら、すべての子プロセスを終了する必要があります。私が waitforsingleobject を実行すると、プロセスが完了するまで Windows サービスでハングし、それ以上の http 要求は受け入れられないことを理解していますか? 私は今のところ次のことをやっていますが、それは正しいアプローチではありません。
if(CreateProcess( TEXT(EXEPATH),   
                procArguments, 
                NULL,          
                NULL,          
                FALSE,         
                0,             
                NULL,          
                NULL,          
                &si,           
                &pi )          
            ) 
            {
                 processHandles[processCount] = pi.hProcess;                 
                 processStreams[processCount] = eventId.c_str();                    
                 processCount++;                 
             }      
サービス停止時 私はこれをやっています
for(int index=0;index<10;index++){
            g_pAppLog->Log("Stop Process for processStreams[%d] %s\n",index,processStreams[index].c_str());
            int terminationResult = TerminateProcess(processHandles[index],1);                  
        }