У меня есть библиотека классов .NET, которая запускает вторичный процесс, который продолжает работать до тех пор, пока я не избавлюсь от объекта.
] Из-за некоторых случаев, когда программа задерживается в памяти, я решил добавить интеграционный тест, чтобы гарантировать, что если я позволю объекту перейти в GC / Finalization, этот процесс будет остановлен.
Однако, поскольку процесс является клиент командной строки Mercurial, а мой сервер сборки уже запускает Mercurial как часть своих собственных операций, я предполагаю ситуации, когда Mercurial либо уже запущен, когда этот тест запускается, либо что он запущен и все еще работает, когда тест завершается , по отношению к серверу сборки, а не к моему тесту.
Итак, я хочу убедиться, что клиент Mercurial, который я нашел (или нет), является тем, который я запустил, а не только любым клиентом, который в настоящее время работает.
Итак, вопрос следующий:
"Посмотрев на", я рассматривал метод Process.GetProcesses , но это не является обязательным требованием.
Если другой вопрос, лучше , «Как найти все дочерние процессы моего собственного процесса», т.е. легче ответить, этого более чем достаточно.
Я нашел эту страницу: Как я могу узнать идентификатор родительского процесса для процесса? , но кажется, что я должен дать ему Имя процесса. Если я просто скажу "hg", не будет ли этот вопрос слишком двусмысленным для случая, который я ищу?