Найти все темы процесса с указанным идентификатором процесса - PullRequest
6 голосов
/ 25 января 2012

Я пытаюсь выяснить, есть ли лучший способ найти все идентификаторы потоков, которые принадлежат текущему процессу. Похоже, использование CreateToolhelp32Snapshot с TH32CS_SNAPTHREAD и итерация по потокам, чтобы проверить, равен ли идентификатор процесса потока текущему идентификатору процесса, является решением, но я хочу избежать итерации всех запущенных потоков. Я просто хочу перебрать потоки, которые принадлежат данному процессу. Пожалуйста, дайте мне знать, если есть быстрый и простой API. Мне нужно сделать это в C ++.

Спасибо, Абхинай.

Ответы [ 2 ]

1 голос
/ 23 апреля 2016

Если «текущий процесс» - это тот, который вы написали, вы можете воспользоваться тем фактом, что функции DllMain вызываются каждый раз, когда поток добавляется или завершается с помощью кодов причины DLL_THREAD_ATTACH и DLL_THREAD_DETACH. Тогда легко вести свой собственный список.

0 голосов
/ 01 июля 2013

После использования CreateToolhelp32Snapshot с TH32CS_SNAPPROCESS (0x00000002) вы можете получить поток с помощью функции Thread32First .

Пример кода здесь .

...