Процесс.Start запускает процесс два раза вместо одного

StackOverflow https://stackoverflow.com//questions/20016896

  •  21-12-2019
  •  | 
  •  

Вопрос

У меня есть два исполняемых файла (Program1.exe и Program2.exe), каждый из которых открывает другой при закрытии:

Вот некоторый код из Program1.exe:

private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
   Application.Exit();
   Process.Start(Environment.CurrentDirectory + @"\Program2.exe");
}

Однако, когда я делаю это, он открывается два окна вместо одного.Есть ли какой-нибудь способ позволить ему открыть только одно окно?

Это было полезно?

Решение

Application.Exit позовет FormClosing событие еще раз.Так Process.Start вызывается дважды и, таким образом, открывается дважды.

Переместите следующий код в FormClosed событие

private void Main_FormClosed(object sender, FormClosedEventArgs e)
{
    Process.Start(Environment.CurrentDirectory + @"\Program2.exe");
}

Другие советы

Попробуйте удалить Application.Exit();.

Это вызывает Main_FormClosing

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top