【问题标题】:getting a thread state in c++/windows在 C++/Windows 中获取线程状态
【发布时间】:2011-01-05 20:25:41
【问题描述】:


必须有一个函数可以获取系统中线程的当前状态,因为
有这个应用程序:http://www.softwareverify.com/cpp/thread-status-monitor/index.html

它一定是在使用某种 API 函数之类的... 如何在 C++/Windows 中自己获取线程状态?
谢谢:)

(这是我今天的最后一个问题。我保证:))

【问题讨论】:

  • 出于兴趣,我下载了线程状态应用程序(它是免费的)尝试一下。它在 XP 中不显示任何进程,因此也不显示线程信息,所以我只能假设它正在使用仅在 Vista/Win7 中可用的 API 调用

标签: c++ thread-state


【解决方案1】:

这是通过 Toolhelp 库完成的,请查看 MSDN 上的信息:http://msdn.microsoft.com/en-us/library/ms686780%28v=VS.85%29.aspx

【讨论】:

    【解决方案2】:

    您可以使用以下示例获取正在运行的进程,如果您有进程 ID,则可以获取线程。

    Taking a Snapshot and Viewing Processes

    Traversing the Thread List

    编辑:在获得您感兴趣的线程的句柄后,您可以调用GetExitCodeThread,但这只会告诉您线程是否为STILL_ACTIVE,直到它结束,当你可以找到退出代码。

    在为您的评论搜索其他信息时,我还遇到了您可能感兴趣的关于 SO 的 this thread

    【讨论】:

    • @ldov:在我的回答中添加了更多信息以回应您的评论。
    【解决方案3】:

    您可以从 WMI 中获得最大的收益,Win32_Thread class。链接的文章有一个指向您需要的 C++ 代码的链接。试用 WMI Code Creator 工具。

    【讨论】:

    • 我知道,你可以用这么少的代码用脚本语言做到这一点,这很糟糕。但是查询本身在任何语言中都是相同的。使用该工具验证您的 C++ 代码是否正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多