Получение времени пользователя и ядра потока

Здесь мне нужно общее время потока, поэтому я использую функцию GetThreadTimes
чтобы получить режим ядра времен потока, а также в пользовательском режиме.

GetThreadTimes(threadHandle, &ftCreate, &ftExit, &ftKernel, &ftUser);
LARGE_INTEGER qwKernel, qwUser;
qwKernel.HighPart = ((ftKernel.dwHighDateTime));
qwKernel.LowPart = ftKernel.dwLowDateTime;

Я могу получить время создания потока. Но мне нужно получить общее время (время ядра + время пользователя), используемое этим потоком.

Поскольку кернал и пользовательское время, которое я получаю из GetthreadTimes, это сумма
времени (в миллисекундах или секундах), как получить эти времена.

Я попробовал ниже фрагмент кода. Но я получаю огромные числа в соответствующих QuadParts.

qwUser.HighPart = ftUser.dwHighDateTime;
qwUser.LowPart = ftUser.dwLowDateTime;
cout << "Kernel QuadPart value :" << qwKernel.QuadPart << endl;
cout << "User QuadPart value :" << qwUser.QuadPart << endl;

Я получаю вывод как:

Значение QuadPart ядра: 140716350575597 Значение QuadPart пользователя:
739454089384

Значение QuadPart ядра: -2 Значение QuadPart пользователя: 739510908248

Из приведенного выше вывода я получаю огромное количество. Но общее время, затраченное моей нитью, составляет менее 10 секунд.

Это правильный способ получения времени ядра и пользователя ..?

Благодарю.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]