Jaka jest korzyść z używania WaitForSingleObject
tutaj, w przeciwieństwie do nieużywania go? Pierwszy blok kodu pochodzi z previous answer. Drugi blok to sposób, w jaki to robię.Korzyści z używania obiektu WaitForSingleObject podczas sprawdzania identyfikatora procesu
BOOL IsProcessRunning(DWORD pid)
{
HANDLE process = OpenProcess(SYNCHRONIZE, FALSE, pid);
DWORD ret = WaitForSingleObject(process, 0);
CloseHandle(process);
return (ret == WAIT_TIMEOUT);
}
vs
BOOL IsProcessRunning(DWORD pid)
{
HANDLE process = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid);
const bool exists = (process != NULL);
CloseHandle(process);
return exists;
}
Wydaje się, używając SYNCHRONIZE wymaga wyższych uprawnień i chcę tylko sprawdzić PID dla bieżącego użytkownika.
Aby dodać niektóre prace porównawcze - możesz porównać "GetExitCodeProcess" z 'WaitForSingleObject', aby określić stan zakończenia procesu. –