[1].[图片] ProcessorUsage.png 跳至 [1] [2] [3] [4] [5]

[2].[文件] ProcessorUsage.zip ~ 16KB 下载(66)跳至 [1] [2] [3] [4] [5]
文件不存在或者代码语言不存在
[3].[文件] ProcessorUsage.ARMV4I.zip ~ 225KB 下载(68)跳至 [1] [2] [3] [4] [5]
文件不存在或者代码语言不存在
[4].[代码] [C/C++/Objective-C]代码跳至 [1] [2] [3] [4] [5]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /// Convert a FILETIME to ticks (ms)DWORD GetThreadTick( const FILETIME& time ) { __int64tick = MAKEDWORDLONG( time.dwLowDateTime,time.dwHighDateTime ); returnstatic_cast< DWORD >( tick /= 10000 );} FILETIME creation = { 0 }, exit= { 0 }, kernel = { 0 }, user = { 0 }; ::GetThreadTimes( (HANDLE )thread_id, &creation, &exit, &kernel, &user ) // time in ms spent in kernel spaceDWORDkernel_tics = GetThreadTick( kernel ); // time in ms spent in user spaceDWORDuser_tics = GetThreadTick( user ); |
[5].[代码] [C/C++/Objective-C]代码跳至 [1] [2] [3] [4] [5]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | HANDLEsnapshot = ::CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 );if( INVALID_HANDLE_VALUE != snapshot ){ THREADENTRY32 te = { 0 }; te.dwSize =sizeof( THREADENTRY32 ); if( ::Thread32First( snapshot, &te ) ) { do { // The te.th32ThreadID member will give us the thread ID of // every thread running in the system. // te.th32OwnerProcessID tells us which process owns that // thread. } while( ::Thread32Next( snapshot, &te ) ); } ::CloseToolhelp32Snapshot( snapshot );} |