![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Продолжительность работы потока
Mouserx © (2005-02-08 12:16:00)Мастера как узнать время работы потока? Меня волнует не время ЦП а просто продолжительность работы потока! Отслеживать мне надо посторонний поток, поэтому я не могу знать когда он запустился.
Digitman (2005-02-08 13:13:00) [1]
> Alexander Panov © (08.02.05 13:05) [6]
> При старте процедуры Execute запоминуешь время, при окончании
> - считаешь разницу
Execute не есть вся поточная ф-ция... это лишь процедура, вызываемая в контексте поточной ф-ции созданного потока
во многих случаях измерение времени выполнения собственно Execute не отражает сути вопроса автора, ибо м.б. существенно меньше реального времени выполнения поточной ф-ции из-за многих факторов ... например, использования синхронизации с потоком-создателем
Digitman (2005-02-08 13:09:00) [2]
> Mouserx (08.02.05 13:01) [5]
> Поток работает вместе с основной программой а не ждет (WaitForSingleObject)
когда он подобным образом "ждет", растет его kernel time.
когда он не "ждет", растет user time
суммарное время работы потока (ждет он или не ждет) равно сумме KernelTime + UserTime .. или ExitTime - CreationTime ..
до тех пор пока хэндл потока не закрыт, ты имеешь право и возможность с пом.вызова GetThreadTimes узнать все четыре временных параметра потока
Alexander Panov (2005-02-08 13:05:00) [3]Mouserx (08.02.05 13:01) [5]
Можно ли узнать время работы потока, нигде не записывая время его запуска?
Можно.
При старте процедуры Execute запоминуешь время, при окончании - считаешь разницу. Результат получаешь в основном потоке.
Mouserx (2005-02-08 13:01:00) [4]
> BiN © (08.02.05 12:34) [3]
А можно по подробнее как ее использовать? мне непонятны параметры которые ей надо передать (кроме первого).
> Alexander Panov © (08.02.05 12:42) [4]
Поток работает вместе с основной программой а не ждет (WaitForSingleObject)
Думал просто хранить время запуска потока, но потоков несколько и вот хочу знать:
Можно ли узнать время работы потока, нигде не записывая время его запуска?
Alexander Panov (2005-02-08 12:42:00) [5]t1=now
=WaitForSingleObject
t2=now
dt=t2-t1
BiN (2005-02-08 12:34:00) [6]GetThreadTimes
Mouserx (2005-02-08 12:24:00) [7]Отслеживаю доп. поток своего процесса. Известно только ID доп. потока.
Digitman (2005-02-08 12:19:00) [8]
> Отслеживать мне надо посторонний поток
своего процесса ? или чужого ?