2013-07-12 3 views
0

Как узнать, сколько процессорных тиков используется потоком. Например, если я правильно понимаю, если поток во сне, он не использует тики процессора. Я пишу программу, которая следит за процессом в окнах и его потоками. И мне нужно знать, что моя нить работает или нет. Мне не хватает информации о выходе из кода. Как я могу узнать эту информацию из темы HANDLE?Количество тиков процессора для оконной строки

ответ

1

Как насчет GetThreadTimes. Возвращаются времена ... http://msdn.microsoft.com/en-us/library/windows/desktop/ms683237

+0

Добро пожаловать на SO @Jochen. Некоторые рекомендации, мы довольно строго о желаемом формате ответов. Вы не можете задать вопрос для ответа на вопрос и ответ, который не намного больше, чем ссылка на другой веб-сайт, не считается действительным ответом. Проверьте ответ Романа на достойный способ предоставить документацию, которая не полагается на ссылку, которая могла бы быть мертвой в любое время. –

+0

@ Ханс: Спасибо за ваше руководство ... Я постараюсь улучшить свои ответы в будущем ... Я новичок в SO, поэтому мне нужно будет узнать ... –

+0

@JochenKalmbach, если я правильно понимаю, если программа работая, это время должно меняться, но я не вижу этого :( – EXTRAM

1

GetThreadTimes function, посмотрите на ядро ​​/ пользователь раз вы можете получить для данного потока:

lpKernelTime [из]

указатель на FILETIME, которая получает количество времени, которое поток выполнил в режиме ядра. lpUserTime [out]

Указатель на структуру FILETIME, которая получает количество времени, которое поток выполнил в пользовательском режиме.

Кроме того, если вы смотрите темы с помощью Process Explorer, вы можете увидеть эти времена меняются:

+1

Также помните, что GetThreadTimes «может дать вам неправильный номер в некоторых особых ситуациях. Время потока вычисляется только в том случае, если поток использует весь qunatum. См. Также [Почему GetThreadTimes ошибочен] (http://blog.kalmbachnet.de/ ? postid = 28) –

+0

@JochenKalmbach: Вы, безусловно, правы. Существует также «QueryThreadCycleTime» для аккуратного, но я бы сказал, что «GetThreadTimes» подходит для большинства сценариев и, в частности, для просмотра потоков из приложение стороннего наблюдателя. –

+0

Да, для большинства сценариев достаточно «GetThreadTimes»! –

Смежные вопросы