Environment.Exit() 메서드
Environment.Exit() 메서드는 현재 프로세스를 즉시 종료하고 운영체제에 종료 코드를 반환합니다.
Environment.Exit(exitCode);
종료 코드(exitCode)는 다음과 같이 사용합니다:
- 0 (성공): 프로세스가 정상적으로 완료되었음을 나타냅니다.
- 0이 아닌 값 (오류): 오류 유형을 구분하기 위해 사용합니다. 예를 들어:
Environment.Exit(1)- 요청한 파일이 존재하지 않음Environment.Exit(2)- 파일 형식이 올바르지 않음
Application.ExitThread() 메서드
Windows Forms 애플리케이션에서 현재 스레드나 서브 애플리케이션만 종료하려면 System.Windows.Forms.Application.ExitThread()를 사용합니다. 이 메서드는 호출된 스레드의 메시지 루프를 종료시키며, 메인 스레드에서 호출 시 애플리케이션 전체가 종료됩니다.
private void buttonClose_Click(object sender, EventArgs e) {
System.Windows.Forms.Application.ExitThread();
}
주요 차이점 및 사용 가이드
| 메서드 | 범위 | 용도 |
|---|---|---|
| Environment.Exit() | 전체 프로세스 | 콘솔 앱, 서비스, 즉시 종료가 필요할 때 |
| Application.ExitThread() | 현재 스레드 (메시지 루프) | WinForms에서 특정 폼/스레드만 닫을 때 |
| Application.Exit() | 전체 애플리케이션 (모든 메시지 루프) | WinForms에서 전체 앱을 정상 종료할 때 |
참고: Environment.Exit()은 finally 블록이나 finalizer를 실행하지 않고 즉시 종료하므로, 리소스 정리가 필요하면 Application.Exit() 또는 폼의 Close()를 사용하는 것이 좋습니다.