Problème création et destruction de processus.
Salut,
Je dispose d'une classe CCommand avec entre autre les fonctions suivantes :
execute() -> executer un processus
stop() -> stopper ce processus
Mon problème:
je voudrais que quand le processus tourne, qu'il ne sa passe plus rien avant que le processus soit terminer d'où un WaitForSingleObject( pi.hProcess, INFINITE ); dans la fonction execute().
Seulement je voudrais aussi commander l'arret du processus à tout moment avec la fonction stop().
Le processus est créé avec CreateProcess, la fonction stop() est celle donnée par la FAQ :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| void CPerforceCommand::stop()
{
PostThreadMessage(pi.dwThreadId, WM_CLOSE, 0, 0);
WaitForSingleObject(pi.hProcess, 2000);
DWORD dwExitCode = 0;
GetExitCodeProcess(pi.hProcess, &dwExitCode);
if(dwExitCode == STILL_ACTIVE) //process toujours présent ?
{
// en dernier recours forcé à la fermeture du process avec un code d’erreur à zéro pour l’exemple
TerminateProcess(pi.hProcess, 0);
}
} |
Actuellement si je fait :
MaCommand.execute();
MaCommand.stop();
stop() n'a lieu que quand MaCommand.execute(); est fini. ( Ce qui est d'une utilité remarquable... )
:?: Comment faire pour interompre l'exécution de MaCommand.execute() ?
Merci