Windows核心编程学习笔记(12)--线程与进程运行的时间

Drecik学习经验分享

转载请注明出处:http://blog.csdn.net/drecik__/article/details/8093724

 

如果是一般精度要求可以使用GetThreadTimes和GetProcessTimes函数来获取时间,原型如下:

// 以下获得的时间都是以100ns为单位,从1601/01/01子时开始计算的时间;
BOOL GetThreadTimes(
	HANDLE hThread,				// 线程句柄;
	LPFILETIME lpCreationTime,	// 线程创建时间;
	LPFILETIME lpExitTime,		// 线程退出时间,如果仍在运行,则未定义;
	LPFILETIME lpKernelTime,	// 线程在内核模式下运行操作系统代码所用的时间;
	LPFILETIME lpUserTime		// 线程运行用户代码所用的时间;
	);

BOOL GetProcessTimes(
	HANDLE hProcess,			// 进程时间;
	LPFILETIME lpCreationTime,	// 四个参数同线程;
	LPFILETIME lpExitTime,		// 但是指的是进程中所有线程的时间总和;
	LPFILETIME lpKernelTime,
	LPFILETIME lpUserTime
	);

如果是想高精度要求可以使用下面函数:
BOOL QueryThreadCycleTime (
	HANDLE ThreadHandle,		// 线程句柄;
	PULONG64 CycleTime			// 线程所用的时钟周期数;
	);

BOOL QueryProcessCycleTime (
	HANDLE ProcessHandle,		// 进程句柄;
	PULONG64 CycleTime			// 进程中所有线程使用的时钟周期数;
	);

BOOL QueryPerformanceFrequency(
	LARGE_INTEGER *lpFrequency	// 获得时钟频率;
	);

BOOL QueryPerformanceCounter(
	LARGE_INTEGER *lpPerformanceCount	// 当前使用的时钟数;
	);

你可能感兴趣的:(Windows核心编程学习笔记(12)--线程与进程运行的时间)