我打電話GetProcessTimes()
週期性地在每次迭代做同樣的事情,但它似乎每次都會產生相同的結果,並且只是隨時間變化。這是一種正常的行爲嗎?不應該隨着時間的推移而改變結果嗎?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,然後 1092007, 1092007, 1092007,等。 。
它不應該每次都改變一些嗎?函數內部是否有某種刷新率?
感謝您的幫助。
呃,你爲什麼要傳遞一個指向'ULARGE_INTEGER'的指針給一個需要指向FILETIME結構的函數呢? –
這是一個很好的問題。這不是我自己的代碼,它操縱我nevet已經接近x的東西) – Virus721
@CodyGray:這是因爲他想使用缺少'FILETIME'的'QuadPart'成員。 – Gabe