2011-02-23 2 views
0

나는 항상 Application.Exit을 호출 할 때마다 종료 할 필요가 없다고 읽었습니다. 나는 그 원인을 알기를 원합니다. Application.Exit이 응용 프로그램을 종료하지 않을 것이라고 예상 할 수 있습니까?WinForms Application.Exit이 앱을 종료하지 않아야합니다. MSDN의

+0

이 질문에서 좀 더 자세한 정보를 얻을 수 있습니다. http://stackoverflow.com/questions/1057151/application-exit – Malice

답변

2

Application.Exit은 열려있는 모든 양식에 대해 FormClosing을 호출하며이 이벤트는 취소 될 수 있습니다. 이 이벤트를 취소 한 양식이 있으면 Application.Exit은 아무 것도하지 않고 중지합니다. 그렇지 않으면 모든 양식이 닫힙니다. 그러나 백그라운드 스레드가 아닌 다른 스레드가 있으면 (메인 스레드에 추가로) 응용 프로그램이 Application.Exit에 의해 완료되지 않습니다.

1

WinForms 프로젝트의 경우 VS로 생성되는 기본값 인 일반적인 설정을 사용하십시오. 양식에서 이제

static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new YourForm()); 
} 

오류가 생성자에서 발생하면

,

public YourForm() 
{ 
    InitializeComponent(); 

    try 
    { 
     //do some stuff + error occurs... 

     //simulate error 
     throw new exception("blah"); 

    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString());     
     Application.Exit(); //useless 
    } 
} 

그러나 YourForm 사실에 나타나는 응용 프로그램은 여전히 ​​것,이/죽 응용 프로그램을 종료 할 것이라고 생각하기 쉽다 달리고있어.

관련 문제