Надежность Process.Start () затем закрыть текущий процесс с помощью C # - PullRequest
0 голосов
/ 08 мая 2018

У меня есть приложение A winform C #, которому нужно запустить другое приложение B winform с помощью Process.Start, а затем закрыть себя. Исходный код такой же, как показано ниже:

using(Process updater = new Process())
{
    updater.StartInfo.FileName = "B.exe";
    updater.Start();
}
this.Close();

Но иногда я замечаю, что A закрывается без использования B.

Что мне интересно, так это убедиться, что B.exe успешно запущен перед закрытием A.

Кстати, мои целевые рамки должны быть 3,5 и 4.

Спасибо заранее.

1 Ответ

0 голосов
/ 08 мая 2018

Вы можете проверить, запущен ли процесс и отвечает:

        Boolean closeme = false;
        using (System.Diagnostics.Process updater = new System.Diagnostics.Process())
        {
            updater.StartInfo.FileName = "B.exe";
            if (updater.Start())
                while (!updater.HasExited)
                {
                    if (updater.Responding)
                    {
                        closeme = true;
                        break;
                    }
                    /* insert a timeout if process hangs */
                }
            if (updater.HasExited)
            {
                /* Do something else (updater.ExitCode)  */
            }

        }
        if (closeme)
            this.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...