2011-12-28 3 views
0

Мой проект требует перезагрузки, если пользователь изменит настройки до того, как настройки вступят в силу. Я создал приглашение DialogResult, которое запрашивает у пользователя, хочет ли он перезапустить программу. Я вызываю MessageBox, который возвращает Да/Нет, и если вы нажмете «нет», он ведет себя правильно и не закрывает программу. Если вы выберете «да», приложение закрывается ... и все, без перезагрузки. У меня есть тесная проверка, которую я прочитал, может вызвать проблемы, но у меня создалось впечатление, что это проблемы с закрытием программы, а не перезапуск? Что может заставить приложение не перезапускать? Есть ли еще метод, а не просто его вызов, который мне нужно делать?My Application.Restart не завершен?

попытке перезапустить приложение, вызвав метод:

Application.Restart(); 

Как использовать ли я темы, я сознательно не используя темы, потому что я не знаю, что это значит быть честным.

+0

Пожалуйста, не прикрепите названия к «C#» и тому подобное. Используйте теги для этого. –

+0

Можете ли вы опубликовать код и лучше объяснить свой сценарий? –

+0

Вы используете потоки? Любые блокирующие методы? – Matthias

ответ

0

Таким образом, благодаря ссылке сверху я нашел рекомендацию по другой теме, которая была отличным решением для простого использования метода Application.Restart().

System.Diagnostics.Process.Start(Application.ExecutablePath); 
Application.Exit(); 

Это позволяет моей программе перезагружаться очень эффективно, несмотря на мою закрытие проверки. Возможно, это все равно будет проблемой, если я проведу закрытие, связанную с вызовом Application.Exit.

1

Обычно, когда вы используете этот метод, ваше приложение перезапустится.

Обычно это рутинное действие, но я видел в вашем вопросе, что у вас есть какая-то логика проверки, когда приложение закрыто. Таким образом, я почти на 90% уверен, что эта ошибка возникла из-за того, что некоторые из этих проверок не удались. Отправьте код проверки, и кто-то может помочь вам отладить проблему.