Эти предложенные решения могут работать, но, как уже упоминал другой комментатор, они чувствуют себя как быстрый взлом.Другой способ сделать это, который кажется немного чище, - запустить пакетный файл, который включает задержку (например, 5 секунд), чтобы дождаться завершения текущего (закрывающего) приложения.
Это предотвращает одновременное открытие двух экземпляров приложения.В моем случае недопустимо одновременное открытие двух экземпляров приложения - я использую мьютекс, чтобы гарантировать, что открыто только одно приложение - из-за приложения, использующего некоторые аппаратные ресурсы.file ("restart.bat"):
sleep 5
start "" "C:\Dev\MyApplication.exe"
И в приложении WPF добавьте этот код:
// Launch the restart batch file
Process.Start(@"C:\Dev\restart.bat");
// Close the current application
Application.Current.MainWindow.Close();