Мне нужно создать программу, которая определяет, когда запускается определенный процесс, а затем немедленно выполняет некоторые действия.
Мой первый подход заключался в непрерывном опросе списка процессов с использованием цикла while(true). Это работает и обнаруживает процесс быстро, но вызывает очень высокую загрузку процессора из-за занятого ожидания.
Использование time.sleep() неприемлемо в моем случае, поскольку даже небольшие задержки заметно снижают скорость обнаружения процесса.
Важные ограничения:
Программа должна работать без прав администратора.
Только в пользовательском режиме
Очень быстро Требуется обнаружение (почти в режиме реального времени)
Мне нужен более эффективный подход, который:
Очень быстро обнаруживает создание процессов
Использует низкую загрузку ЦП
Предпочтительно позволяет избежать жесткого цикла опроса
Существует ли рекомендуемый способ эффективного обнаружения создания процессов в Windows при таких ограничениях?
Примечание: английский не мой родной язык, и это Вопрос был написан с помощью переводчика и искусственного интеллекта, поэтому извините за неуклюжие формулировки.
Будем признательны за любые рекомендации и примеры.
Подробнее здесь: https://stackoverflow.com/questions/798 ... -busy-loop