2008-10-28 10 views
7

응용 프로그램을 강제로 종료하고 종료 코드를 반환 할 수 있습니다. MSDN에서 한 번 보았는데 WPF에서 응용 프로그램에 매개 변수로 오류 코드를 사용하는 Shutdown 메서드가 있지만 System.Windows.Forms.Application에 대한 것으로 보이지 않습니다.응용 프로그램 강제 종료 (.net)

Application.Exit()은 볼 수 있지만 오류 코드를 다시 전달할 수는 없습니다.

가능하다면 누구나 알고 있습니까?

감사합니다.

답변

13

System.Environment.Exit (yourExitCode)를 사용할 수 있습니다.

+0

Environment.Exit over Application을 사용하는 이유는 무엇입니까? 오류 코드 외에 종료 하시겠습니까? – Sekhat

+1

Application.Exit은 Winforms 앱에서 사용해야하며 environment.exit()는 GUI가 아닌 프로그램에서 사용할 수 있습니다. –

2

은 ExitCode 속성을 System.Environment 클래스에서 설정하고 종료 할 때 설정합니다. 예 :

System.Environment.ExitCode = 1 
Application.Exit() 
2

폼 클래스에가 ExitCode 속성 (또는 뭔가 유사한) 추가 : 어딘가에 코드에서

class MyForm : Form { 
    public int ExitCode { get; set; } 

    void ShutDownWithError(int code) { 
    ExitCode = code; 
    Close(); 
    } 
} 

은 당신이 :

static void Main() { 
    // ... 
    MyForm form = new MyForm(); 
    Application.Run(myForm); 
} 

변경을가로 :

static void Main() { 
    // ... 
    MyForm myForm = new MyForm(); 
    Application.Run(myForm); 
    Environment.Exit(myForm.ExitCode); 
} 

ShutdownWithE rror 메서드가 호출되면 폼을 닫습니다. 이것은 Application.Run으로 시작된 루프를 뛰어 넘을 것입니다. 그런 다음 종료 코드를 가져오고 Environment.Exit를 사용하여 프로세스를 종료합니다.

+0

감사합니다. 우리는 전역 예외 처리기를 종료해야하기 때문에 우리 사례가 좀 더 복잡하다고 생각합니다. 그러나 원칙은 동일하다고 생각합니다. – Duncan