2015-02-01 3 views
0

Я пытаюсь закрыть приложение сразу, если пользователь выбирает папку, которая не содержит файл, который я ищу. Мой код достигает Application.Exit(), но после того, как он запускает строку, приложение продолжает работать и достигает кода, который вызывает его сбой.C# как закрыть приложение немедленно .NET Framework

public Form1() 
    { 
     InitializeComponent(); 

     FolderBrowserDialog dlg = new FolderBrowserDialog(); 

     if (DialogResult.OK == dlg.ShowDialog()) 
     { 
      particleFolder = dlg.SelectedPath + "\\"; 
      if(!(File.Exists(particleFolder + "particle.png"))) 
      { 
       Application.Exit(); 
       return; 

      } 

     } 
.... 
+6

Вы должны перенести это из конструктора в 'Main()', чтобы вы могли просто 'return;'. – SLaks

+0

Связанный: https://stackoverflow.com/questions/13046019/winforms-application-exit-vs-enviroment-exit-vs-form-close –

+1

Вы не можете использовать Application.Exit(), когда он еще не начался, ваша программа Файл .cs содержит Application.Run(), и это произойдет дальше. Это не единственная проблема, диалог требует владельца, и у него его еще нет. Значительно увеличивая вероятность того, что ваше главное окно исчезнет за окном другого приложения. В лучшем случае этот код может появиться в обработчике событий Shown, команда File + Open является, конечно, шаблоном. –

ответ

4

Application.Exit() Изящный. Он отправляет сообщение в каждое окно, чтобы закрыть их, что позволяет им запускать любую логику очистки.

Environment.Exit() не изящно, поэтому вы умрете прямо там и тогда.

Смежные вопросы