您的位置:首页 > 编程语言

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

2012-10-20 19:45 267 查看
Drecik学习经验分享

转载请注明出处:/article/3712379.html



如果是一般精度要求可以使用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	// 当前使用的时钟数;
	);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: