是否有可能获得在任何给定的时间线程句柄列表的当前进程在Win32(在C + +)?
你会发现这篇文章有帮助。 它给出了使用工具帮助库附带的小细微差别的线程枚举的代码。
为了方便起见(从文章中解除):
#include <stdio.h> #include <windows.h> #include <tlhelp32.h> int __cdecl main(int argc, char **argv) { HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); if (h != INVALID_HANDLE_VALUE) { THREADENTRY32 te; te.dwSize = sizeof(te); if (Thread32First(h, &te)) { do { if (te.dwSize >= FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) + sizeof(te.th32OwnerProcessID)) { printf("Process 0x%04x Thread 0x%04x\n", te.th32OwnerProcessID, te.th32ThreadID); } te.dwSize = sizeof(te); } while (Thread32Next(h, &te)); } CloseHandle(h); } return 0; }
OpenThread
将标识符转换为句柄