Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/62: Рейтинг темы: голосов - 62, средняя оценка - 4.85
Дмитрий_Veter

Как узнать количество потоков в процессе?

25.05.2008, 22:49. Показов 11812. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Цель стоит: написать программу с информацией о процессах...Список процессов
выявил через EnumProcesses,OpenProcess,GetModuleBaseN ame, также их идентификаторы и класс приоритета через GetPriorityClass. Использую функции PSAPI, пишу в Delphi. В примерах к книге Рихтера используется библиотека ToolHelp и как то там решается этот вопрос через THREADENTRY32, в С не силен. Прошу, если можно, указать как данный вопрос решить через PSAPI.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2008, 22:49
Ответы с готовыми решениями:

Посчитать количество потоков в процессе
Потоки создаются рекурсивно в очень большом количестве, хотелось бы посчитать их количество, пробовал чтоб при создании они прибавляли 1 к...

Как на лету менять количество потоков в winapi?
Как на лету менить количество потоков в winapi? тоесть например программа работает, тут бах - захотелось увеличить количесво потоков - но...

Как определить количество потоков в процессе?
В мом приложении куча потоков. Могу ли я как-то определить их хендлы и общее количество (например, что-то типа FindWindows +...

2
Флудер
 Аватар для Ensase
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
26.05.2008, 20:56
вообщем путей через PSAPI не вижу. Да и структуры в хидере PSAPI не содержат полей информации о потоках.
http://www.delphikingdom.com/l... y.asp?ID=5 - в примерах к этой книге возможноо что-нибудь есть.
Думаю лучше решить через Toolhelp(CreateToolhelp32Snapshot), тем более что он прекрасно работает в дельфи
0
Дмитрий_Veter
28.05.2008, 00:09
Спасибо Ensase за совет ! Похоже Интересная книжулька, раньше мне не попадалась.
Вопрос свой решил, через createToolhelp32Snapshot(TH32CS_SNAPTHRE AD,0) -снимок потоков, и используя:
Delphi
1
2
3
4
          if Thread32First(thread_sn,thread_en) then
            repeat
               if thread_en.th32OwnerProcessID= procs[i] then inc(th);
            until not thread32next(thread_sn,thread_en);
где thread_en:Tthreadentry32; //структура потоков
thread_sn: THandle; //дескриптор снимка потоков
th //они самые приходящиеся на процесс procs[i]
procs -массив для хранения дескрипторов процессов
Вобщем вопрос решается по аналогии вывода процессов через ToolHelp, единственная хитрость что структура threadentry32 для каждого потока хранит идентификатор процесса th32OwnerProcessID.
P.S. Да здравствуют мудрые педагоги, недающие скучать, благодаря своему удивительному воображению!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2008, 00:09
Помогаю со студенческими работами здесь

Как узнать максимальное количество потоков, которое сможет обработать система
которое сможет обработать система ?

По ID процесса узнать количество потоков
Пытаюсь по ID процесса узнать количество потоков public int GetCountThread(int processId) { int countThreads = 0; ...

Как узнать какие именно оптимизации были в процессе компиляции?
Можно ли как то получить С++ код в том виде, как он был оптимизирован компилятором? Анализировать ассемблерные листинги из тысячи строк...

Как узнать о завершении потоков
Пусть мы запустим некоторые потоки for(int i=0;i<10;i++) { Thread th = new Thread(DoWork); th.Start(); } while(//какое...

Узнать информацию о процессе
Здравствуйте у меня возник вопрос как узнать информацию об определенном процессе, а точнее где располагается исполняемый фаил? Просьба...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru