it-swarm.com.de

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

Meine Konsolenanwendungen in Visual Studio werden automatisch geschlossen. Ich möchte also Cs system("PAUSE") verwenden, um die Anwendungen am Ende ihrer Ausführung anzuhalten. Wie kann ich das erreichen?

340
Zignd
Console.ReadLine();

oder

Console.ReadKey();

ReadLine() wartet auf , ReadKey() wartet auf eine beliebige Taste (außer Modifikatortasten).

Bearbeiten: Stahl das Schlüsselsymbol von Darin.

521
Adam

Sie können Ihre Arbeit mit nur kompilieren (mit dem Debuggen beginnen) Ctrl+F5.

Versuch es. Ich mache es immer und die Konsole zeigt mir meine Ergebnisse offen an. Es wird kein zusätzlicher Code benötigt.

152
Silvia Z

Versuchen Sie Strg + F5 in Visual Studio, um Ihr Programm auszuführen. Dadurch wird automatisch eine Pause mit "Drücken Sie eine beliebige Taste, um fortzufahren ..." ohne die Funktionen Console.Readline () oder ReadKey () eingefügt.

43
Sohail xIN3N

Console.ReadLine(), um auf den Benutzer zu warten Enter oder Console.ReadKey, um auf einen Schlüssel zu warten.

35
Darin Dimitrov

Verwenden:

Console.ReadKey();

Damit es geschlossen wird, wenn jemand eine Taste drückt, oder:

Console.ReadLine();

Wenn der Benutzer etwas eingibt und die Eingabetaste drückt.

24
matthewr

Strg + F5 ist besser, weil Sie keine zusätzlichen Zeilen benötigen. Und am Ende können Sie den laufenden Modus betreten und verlassen.

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

13

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

System.Threading.Thread.Sleep(1000);

Beachten Sie, dass Sleep Millisekunden verwendet.

11
gotqn

Diese Lösungen ändern die Funktionsweise Ihres Programms.

Sie können natürlich #if DEBUG und #endif um die Konsolenaufrufe setzen, aber wenn Sie wirklich verhindern möchten, dass das Fenster nur auf Ihrem Entwicklungscomputer unter Visual Studio geschlossen wird, oder wenn VS nur dann ausgeführt wird, wenn Sie Konfigurieren Sie es explizit, und Sie möchten den ärgerlichen 'Press any key to exit...' nicht, wenn Sie über die Befehlszeile ausgeführt werden. Verwenden Sie dazu die System.Diagnostics.Debugger APIs.

Wenn Sie nur möchten, dass dies in DEBUG funktioniert, schließen Sie diesen Code einfach in eine [Conditional("DEBUG")] void BreakConditional() -Methode ein.

// 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();
}

Dies funktioniert auch zum Debuggen von Programmen, die erhöhte Berechtigungen benötigen oder die sich selbst erhöhen müssen.

9
Eric

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
6
PodTech.io