(WinAPI) Подскажите как измерить процессорное время работы потоков в одном процессе. Дан один процесс из двух потоков с одинаковыми приоритетами. В одном — окно с графикой, в другом — математика. Окно обновляется по PostMessage из вычисляющего потока, но на перерисовку иногда тратится слишком много времени. Хотелось бы адаптивно подстраивать период обновления окна. А для этого нужно соотнести процессорные времена потоков за произвольный отрезок времени времени.
Код (Text): typedef struct THREAD_INFO { NT_FILETIME ftKernelTime; NT_FILETIME ftUserTime; NT_FILETIME ftCreateTime; long dwWaitTime; long dwStartAddress; CLIENT_ID CID; long dwCurrentPriority; long dwBasePriority; long dwContextSwitches; long dwThreadState; long dwThreadWaitReason; } THREAD_INFO; нэ?
Dukales через ZwQuerySystemInformation (SystemProcessesAndThreadsInformation) получаем список SYSTEM_PROCESS_INFORMATION для каждого процесса определена и THREAD_INFO. хотя для своего процесса лучше наверное либо GetThreadTimes (просто дать хендл треда, полученный после CreateThread и получить желаемые данные) либо ZwQueryInformationThread (ThreadTimes). Почитай Неббета, там есть описания структур и функций (Native)