Показать полную графическую версию : Ожидание завершения процесса
Подскажите, каким образом можно заставить программу ждать завершения процесса (нескольких и с одинаковыми именами)?
Пока сделал так public void tmc()
{
Process[] psl = System.Diagnostics.Process.GetProcessesByName("proga");
foreach (Process pl in psl)
{
Thread.Sleep(10000);
this.tmc();
}
}
но это явно какая то ересь...
Efsey, посмотрите WaitForSingleObject либо WaitForMultipleObject, может быть подойдут!
Нашел решение попроще:
public void tmc()
{
Process[] chr;
chr = Process.GetProcessesByName("proga");
chr[0].WaitForExit();
}
может кому пригодится
Не ругайте, но у меня новый вопрос. Как дождаться завершения только 2-х последних запущенных программ, если в памяти их штук 5-6?
Efsey, а программы запускаются из вашего приложения?
Тут такая схема - одна программа запускается вручную и выключать её нельзя, остальные запускаются через мою прогу этим:
System.Diagnostics.Process.Start(PathCompiler, ArgCompiler);
Написано в C#.
Ну я так предполагаю, это можно реализовать через : при запуске процесса запоминать хэндл, ну а по нему уже завершать этот процесс!Или такой вариант Вам не подходит?
Эээ, как бы сказать... Я этого пока не умею=(
Покажите, пожалуйста, пример)
Ну я как бы с этим тоже не сталкивался, но можно попробовать разобраться с этим! Могу предложить пока что чисто теоретически, т.к. в данный момент нету под рукой C#.
Допустим нужно запустить программу Программа1.exe.
Process proc = new Process();
proc.StartInfo.FileName = "Программа1.ехе";
proc.Start();
IntPtr hProc = Proc.Handle; //по идее в hProc должен записаться Хэндл, либо я совсем не прав, поправьте если что!
Не забываем про using System.Diagnostics.
Если процессов много запускается, то делаем все для каждого!
Потом, если все таки воспользоваться WaitForMultipleObject », то из всех хэндлов создать массив,либо создавать его сразу, и запускать саму функцию!
Мдя... Это нада осмыслить. =)
Блин, это слишком сложно. Сделал так - копировал запускаемую программу с именем proga2. Теперь вручную запускаю proga, а программка запускает и отслеживает proga2. Наверно у меня в роду были индусы
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.