답변:
당신이 사용할 수있는 Environment.Exit(0);
및Application.Exit
Environment.Exit(0)
더 깨끗 합니다.
Environment.Exit
SecurityPermissionFlag.UnmanagedCode 권한이 있어야합니다. 일부 사용자에게는 문제가 될 수 있습니다.
가장 적절한 방법으로 몇 가지 옵션 :
System.Environment.Exit
( 휴대용이 아닙니다! 아래 참조 )가독성을 높이기 위해 2013 년 9 월 수정
특정 종료 코드를 사용하여 리턴 : 주석에서 Servy가 지적한대로 int
리턴 유형으로 Main을 선언 하고 이러한 방식으로 오류 코드를 리턴 할 수 있습니다. 그래서 거기에 정말 사용 Environment.Exit 할 필요는 없다 않는 한 당신이 종료 코드로 종료해야 할 가능성이 메인 방법에 그것을 할 수 없습니다. 처리되지 않은 예외가 전파되면 예외를 throw하고 Main에서 오류 코드를 반환하여이를 피할 수 있습니다. 응용 프로그램이 다중 스레드 인 경우 종료 코드로 올바르게 종료하려면 더 많은 상용구가 필요할 수 있으므로 Environment.Exit를 호출하는 것이 좋습니다.
Evironment.Exit
멀티 스레드 응용 프로그램을 작성할 때도 사용에 대한 또 다른 요점 은 재사용 성 입니다. Environment.Exit
관련 이 없는 환경 (예 : 웹 서버에서 사용할 수있는 라이브러리) 에서 코드를 재사용 하려면 코드를 이식 할 수 없습니다. 내 생각에 가장 좋은 해결책은 여전히 메서드가 일부 오류 / 완료 상태에 도달했음을 나타내는 예외 및 / 또는 반환 값을 사용하는 것입니다. 이렇게하면 모든 .NET 환경과 모든 유형의 응용 프로그램에서 항상 동일한 코드를 사용할 수 있습니다. 종료 코드를 반환하거나 비슷한 방식으로 종료해야하는 앱을 구체적으로 작성하는 경우 Environment.Exit
계속 진행하여 스레드를 최상위 수준으로 감싼 다음 필요에 따라 오류 / 예외를 처리 할 수 있습니다.
기본 기능 실행이 완료되면 콘솔 응용 프로그램이 종료됩니다. "반환"은 이것을 달성 할 것입니다.
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
오류 코드를 반환하는 경우 초기 스레드 외부의 함수에서 액세스 할 수있는 다음과 같은 방법으로 오류 코드를 반환 할 수 있습니다.
System.Environment.Exit(-1);
Environment.Exit(0)
및 을 사용할 수 있습니다 Application.Exit
.
Environment.Exit()
:이 프로세스를 종료하고 기본 운영 체제에 지정된 종료 코드를 제공합니다.