Odpowiedzi:
Możesz użyć Environment.Exit(0);
iApplication.Exit
Environment.Exit(0)
jest czystszy .
Environment.Exit
wymaga posiadania SecurityPermissionFlag.UnmanagedCode uprawnień - co może być uciążliwe dla niektórych.
Kilka opcji, według najbardziej odpowiedniego sposobu:
System.Environment.Exit
( nie przenośne! Patrz poniżej )Edytowano 9/2013 w celu poprawy czytelności
Zwracanie z określonym kodem wyjścia: Jak Servy wskazuje w komentarzach, możesz zadeklarować opcję Main za pomocą int
typu zwracanego i w ten sposób zwrócić kod błędu. Tak więc naprawdę nie ma potrzeby używania Environment.Exit, chyba że musisz zakończyć kodem wyjścia i nie możesz tego zrobić w metodzie Main. Najprawdopodobniej możesz tego uniknąć, zgłaszając wyjątek i zwracając kod błędu w Main, jeśli propaguje się tam nieobsługiwany wyjątek. Jeśli aplikacja jest wielowątkowa, prawdopodobnie będziesz potrzebować jeszcze więcej boksów, aby poprawnie zakończyć kodem wyjścia, więc lepiej jest po prostu wywołać Environment.Exit.
Kolejnym argumentem przeciwko używaniu Evironment.Exit
- nawet podczas pisania aplikacji wielowątkowych - jest możliwość ponownego użycia . Jeśli kiedykolwiek zechcesz ponownie użyć kodu w środowisku, które czyni go Environment.Exit
nieistotnym (takim jak biblioteka, która może być używana na serwerze WWW), kod nie będzie przenośny. Moim zdaniem najlepszym rozwiązaniem jest zawsze stosowanie wyjątków i / lub zwracanie wartości, które wskazują, że metoda osiągnęła pewien stan błędu / zakończenia. W ten sposób zawsze możesz używać tego samego kodu w dowolnym środowisku .NET i w dowolnym typie aplikacji. Jeśli piszesz konkretnie aplikację, która musi zwrócić kod wyjścia lub zakończyć działanie w sposób podobny do tego Environment.Exit
, co robi, możesz następnie owinąć wątek na najwyższym poziomie i w razie potrzeby obsłużyć błędy / wyjątki.
Aplikacje konsoli zostaną zamknięte, gdy główna funkcja zakończy działanie. Osiągnie to „powrót”.
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
Jeśli zwracasz kod błędu, możesz to zrobić w ten sposób, który jest dostępny z funkcji spoza początkowego wątku:
System.Environment.Exit(-1);
Możesz użyć Environment.Exit(0)
i Application.Exit
.
Environment.Exit()
: kończy ten proces i nadaje bazowemu systemowi operacyjnemu określony kod wyjścia.