444 Stimmen

Wie kann man verhindern, dass C#-Konsolenanwendungen automatisch geschlossen werden?

Meine Konsolenanwendungen in Visual Studio werden automatisch geschlossen, sobald das Programm die Ausführung beendet hat. Ich möchte die Anwendungen am Ende ihrer Ausführung "anhalten", damit ich die Ausgabe leicht überprüfen kann. Wie kann ich das erreichen?

18voto

gotqn Punkte 37722

Alternativ können Sie das Schließen mit folgendem Code verzögern:

System.Threading.Thread.Sleep(1000);

Beachten Sie die Sleep verwendet Millisekunden.

16voto

Strg + F5 ist besser, da Sie keine zusätzlichen Zeilen benötigen. Und Sie können am Ende die Eingabetaste drücken und den laufenden Modus verlassen.

Wenn Sie jedoch ein Programm mit F5 starten und einen Haltepunkt setzen, können Sie Ihre Anwendung debuggen, was Ihnen weitere Vorteile bringt.

12voto

Eric Punkte 2429

Die genannten Lösungen ändern die Funktionsweise Ihres Programms.

Sie können natürlich auch #if DEBUG y #endif um die Konsolenaufrufe herum, aber wenn Sie wirklich verhindern wollen, dass das Fenster nur auf Ihrem Entwicklungscomputer unter Visual Studio geschlossen wird oder wenn VS nur dann nicht läuft, wenn Sie es explizit konfigurieren, und Sie wollen nicht, dass das lästige 'Press any key to exit...' von der Kommandozeile aus auszuführen, ist es am besten, die Option System.Diagnostics.Debugger APIs.

Wenn Sie wollen, dass das nur in DEBUG verpacken Sie diesen Code einfach in eine [Conditional("DEBUG")] void BreakConditional() Methode.

// Test some configuration option or another
bool launch;
var env = Environment.GetEnvironmentVariable("LAUNCH_DEBUGGER_IF_NOT_ATTACHED");
if (!bool.TryParse(env, out launch))
    launch = false;

// Break either if a debugger is already attached, or if configured to launch
if (launch || Debugger.IsAttached) {
    if (Debugger.IsAttached || Debugger.Launch())
        Debugger.Break();
}

Das funktioniert auch, um Programme zu debuggen, die erhöhte Rechte benötigen oder die sich selbst erhöhen können müssen.

2voto

PodTech.io Punkte 4316

Wenn Sie nicht möchten, dass das Programm geschlossen wird, auch wenn ein Benutzer eine beliebige Taste drückt;

 while (true) {
      System.Console.ReadKey();                
 };//This wont stop app

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X