查找给定进程ID的进程的所有线程

时间:2012-01-24 22:11:06

标签: windows winapi visual-c++ win32-process

我试图找到是否有更好的方法来查找属于当前进程的所有线程ID。看起来像使用带有TH32CS_SNAPTHREAD的CreateToolhelp32Snapshot并迭代线程来检查线程的进程id是否等于当前进程id,是一个解决方案,但我想避免迭代所有正在运行的线程。我只是想迭代属于给定进程的线程。如果有一个快速而简单的API,请告诉我。我需要用c ++做。

谢谢, 阿希奈。

2 个答案:

答案 0 :(得分:1)

如果“当前进程”是您编写的,那么您可以利用DllMain函数在添加或终止使用DLL_THREAD_ATTACH和DLL_THREAD_DETACH的原因代码的任何时候调用的事实。保持自己的清单很简单。

答案 1 :(得分:0)

使用带有TH32CS_SNAPPROCESS(0x00000002)的CreateToolhelp32Snapshot后,您可以使用Thread32First function获取线程。

示例代码为here