我可以从线程内调用 GetThreadTimes() 吗? [关闭]

Posted

技术标签:

【中文标题】我可以从线程内调用 GetThreadTimes() 吗? [关闭]【英文标题】:Can I call GetThreadTimes() from within the thread? [closed] 【发布时间】:2016-03-04 05:36:45 【问题描述】:

这就是我想要做的:

HANDLE myHandle = GetCurrentThread();
GetThreadTimes(myHandle,lpCreationTime,lpExitTime,lpKernelTime,lpUserTime);

但是,这似乎会导致线程崩溃。 是否可以从要测量其时间的线程中调用GetThreadTimes()

编辑:我在崩溃后调用 GetLastError() 得到的系统错误代码是错误 183 (ERROR_ALREADY_EXISTS)。

【问题讨论】:

【参考方案1】:

是的,当然可以。事实上,任何(永远无效的)线程句柄值都不会导致崩溃。根本原因可能是您传递给函数的无效指针lpCreationTimelpExitTimelpKernelTimelpUserTime

【讨论】:

谢谢。根本原因是未分配的指针。

以上是关于我可以从线程内调用 GetThreadTimes() 吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我怎么知道所有线程使用了多少 CPU 时间? [复制]

在 COM 对象内调用 CoInitializeEx 返回 S_OK

从 C# 线程调用非托管代码

在线程内调用 dbus-python

RxJava 无法在未调用 Looper.prepare() 的线程内创建处理程序

从 C# 线程内的非托管 dll 运行函数