GetThreadTimes 函数 (processthreadsapi.h)
检索指定线程的计时信息。
语法
BOOL GetThreadTimes(
[in] HANDLE hThread,
[out] LPFILETIME lpCreationTime,
[out] LPFILETIME lpExitTime,
[out] LPFILETIME lpKernelTime,
[out] LPFILETIME lpUserTime
);
参数
[in] hThread
要获取其计时信息的线程的句柄。 句柄必须具有 THREAD_QUERY_INFORMATION 或 THREAD_QUERY_LIMITED_INFORMATION 访问权限。 有关详细信息,请参阅 线程安全和访问权限。
Windows Server 2003 和 Windows XP: 句柄必须具有 THREAD_QUERY_INFORMATION 访问权限。
[out] lpCreationTime
指向 FILETIME 结构的指针,该结构接收线程的创建时间。
[out] lpExitTime
指向接收线程退出时间 的 FILETIME 结构的指针。 如果线程尚未退出,则此结构的内容未定义。
[out] lpKernelTime
指向 FILETIME 结构的指针,该结构接收线程在内核模式下执行的时间量。
[out] lpUserTime
指向 FILETIME 结构的指针,该结构接收线程在用户模式下执行的时间量。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
所有时间都使用 FILETIME 数据结构表示。 这种结构包含两个 32 位值,这些值组合在一起形成 100 纳秒时间单位的 64 位计数。
线程创建和退出时间是时间点,表示为自 1601 年 1 月 1 日午夜以来在格林威治,英格兰经过的时间。 应用程序可以使用多个函数将此类值转换为更一般有用的形式:请参阅 时间函数。
线程内核模式和用户模式时间是时间量。 例如,如果线程在内核模式下花费了一秒,则此函数将使用 64 位值 1000 万填充 lpKernelTime 指定的 FILETIME 结构。 这是一秒内 100 纳秒的单位数。
若要检索线程使用的 CPU 时钟周期数,请使用 QueryThreadCycleTime 函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | processthreadsapi.h (包括 Windows Server 2003 上的 Windows.h、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib |
DLL | Kernel32.dll |