Есть ли способ получить Process.TotalProcessorTime , который отражает процесс PLUS любых процессов, которые он породил?
В качестве альтернативы, как я могу убедиться, что процесс (или его потомки) все еще "активно" работает?
Мое приложение порождает внешний процесс и ожидает его завершения. Для данных выборки требуется 5-20 минут ; Я не догадываюсь о разумном максимальном таймауте. Поэтому мое приложение проверяет значение Process.TotalProcessorTime для другого процесса через определенные промежутки времени, чтобы убедиться, что оно продолжает расти.
Это прекрасно работает, но я обнаружил, что процесс - это просто «оболочка», которая порождает подпроцесс, который, в свою очередь, порождает несколько других подпроцессов, которые занимают все время процессора.
И я обнаружил, что TotalProcessorTime возвращает лишь небольшую долю секунды после нескольких минут загрузки процессора на 100%.