21.05.2008, 01:13
общий
это ответ
Здравствуйте, S@ZaN!
Windows сама занимается сбором пободной статистики. В WinApi есть следующая замечательная функция:
BOOL GetProcessTimes(HANDLE hProcess, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime);
Которая для процесса возвращает (в формате FILETIME):
lpCreationTime - время создания процесса;
lpExitTime - время заершения процесса (если он был завершен);
lpKernelTime - время работы процесса в режиме ядра (сумма времен работы потоков, для много поточного процесса)
lpUserTime - время работы процесса в режиме пользовательском режиме.
Таким образом сумма lpKernelTime и lpUserTime даст реальное время исполнения процесса. Это время можно сравнить с разностью текущего времени и времени создания потока.