我有一個Windows服務,我正在接收http請求並啓動一個可能運行超過一個小時的進程。當流程結束時,我需要在主要服務中得到通知。而當服務結束時,我需要終止所有子進程。我明白,如果我做了waitforsingleobject它將掛在Windows服務,直到該過程完成,並沒有進一步的http請求將受理?我現在正在追蹤哪些方法有效,但它的方法不正確。瞭解WaitForSingleObject和WaitForMultipleObject
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);
}