Обработка закрытия нескольких процессов - PullRequest
4 голосов
/ 12 августа 2011

Вот что я делаю.У меня есть цикл, который запускает 20 процессов, используя Process.Start ().Я хочу, чтобы все они стреляли одновременно, однако я хочу поймать их, когда они закроются.Есть ли в любом случае сделать это в C #?

Я знаю, что вы можете сделать process.WaitForExit (), но тогда все они не запускаются сразу (именно это я и хочу сделать).По сути, я хочу знать, когда заканчиваются определенные процессы, чтобы я мог информировать пользователя, обновляя записи базы данных, чтобы они могли знать, когда определенные процессы завершены.Вместо того, чтобы просто пытаться отслеживать их по мере их закрытия и изменять ProcessWindowStyle на обычный.

Большое спасибо.

Ответы [ 2 ]

6 голосов
/ 12 августа 2011

Установите для Process.EnableRaisingEvents значение true и подпишитесь на событие Exited.

В качестве альтернативы можно использовать таймер, для которого вы проверяете свойство HasExited.

3 голосов
/ 12 августа 2011

Вы можете прослушать событие Exited (необходимо убедиться, что EnableRaisingEvents имеет значение true).

...