我GetProcessTimes()
在一个循环中定期调用,它在每次迭代中都做同样的事情,但它似乎每次都会产生相同的结果,而且只会不时改变。这是正常行为吗?结果不应该随着时间的推移而改变吗?
void ImCalledPeriodically() {
static const DWORD dwPid = ::GetCurrentProcessId();
static const HANDLE hProc = ::OpenProcess( PROCESS_QUERY_INFORMATION, FALSE, dwPid );
static FILETIME ftUnused1, ftUnused2; // Unused, mandatory parameters.
ULARGE_INTEGER uliUsr, uliKrn;
::GetProcessTimes( hProc, & ftUnused1, & ftUnused2, (_FILETIME *)& uliKrn, (_FILETIME *)& uliUsr);
printf("usr=%I64d krn=%I64d", uliUsr.QuadPart, uliKrn.QuadPart );
// etc...
}
输出值只会随时间变化,例如:
641002、641002、641002、641002 然后 1092007、1092007、1092007、1092007 等...
不应该每次都换几个吗?该功能内部是否有某种刷新率?
谢谢你的帮助。