[c#] 윈도우즈 폼즈 애플리캐이션 강제로 종료하기

흔히 애플리캐이션을 종료할 때 아래의 방법들을 쓴다.

Close(); // = this.Close();
Application.Exit();

위 방법들의 문제는 form closing 이벤트가 실행된다는 거다. 이 이벤트에 무언가 내용이 있다면 실행이 될 텐데 그렇다면 강제 종료가 아니다.

묻지도 따지지도 않고 강제로 끝내 버리려면 아래와 같이 한다.

Application.ExitThread();
Environment.Exit(0);

첫째 방법은 말 그대로 매인 뜨레드만 종료한다. 따라서 여전히 작동하고 있는 다른 뜨레드가 있다면 마치 애플리캐이션이 종료된 거처럼 보여도 작업 관리자로 보면 프로세스는 계속 실행되고 있다. form closing 이벤트는 대체로 실행되지 않지만 경우에 따라 실행될 수도 있으며 슬쩍 실행되는 척하다 말기도 하는 등 좀 복잡하다.

둘째 방법은 애플리캐이션 윗 단계에서 작동하여 보다 원초적이다. 프로세스를 그냥 날려 버린다. form closing 이벤트는 실행되지 않는다.

Use 0 (zero) to indicate that the process completed successfully.
Environment.Exit(Int32) Method

0은 프로세스가 완전히 끝났다고 위 메떠드가 윈도우즈에 알리는 값이다.