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	// 当前使用的时钟数;
	);

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值