2016-11-07 9 views
0
nicht

Ich habe eine Konsole Anwendungsprogramm auf Visual Studio 2013. .NET 4.5 Ich möchte das Programm nach einer bestimmten Aufgabe beenden. SO verwende ich System.Environment.Exit (0); aber es wird nicht beendet. Es wird nur auf der Konsole angezeigt: Drücken Sie eine beliebige Taste, um fortzufahren.System.Environment.Exit (0) beendet Programm

Wie kann ich das Programm beenden? Vielen Dank im Voraus.

Hier Iam überprüfen, ob das Verzeichnis leer ist, dann das Programm beenden, ich habe auch versucht, System.Environment.Exit (0); in der Hauptfunktion hat es aber nichts gemacht.

if (Directory.GetFiles(@"Q:\").Length == 0) 
    { 
     System.Environment.Exit(0); 
    } 
+1

Können Sie etwas Code posten? –

+0

Ich habe die Frage aktualisiert – Mike

+1

Oder einfach "zurück", wenn Sie in der 'Main' Methode sind. –

Antwort

2
Press any key to continue 

Wie ein oben Kommentar schon gesagt, dies viel wie das, was klingt Ihre IDE (vermutlich Visual Studio) gedruckt werden würde, sobald der Prozess beendet wurde. Auf meinem Computer erhalte ich diese Nachricht, wenn ich eine Konsolenanwendung ausführe, ohne den Debugger daran anzufügen, z. durch Starten mit Strg + F5. Sobald ich eine Taste drücke, wird das von Visual Studio erstellte Konsolenfenster geschlossen. Dies ist das erwartete Verhalten.

Versuchen Sie, Ihr Programm mit dem angehängten Debugger auszuführen, z. durch Drücken von F5. Oder starten Sie das Programm über eine Eingabeaufforderung, anstatt es von Ihrer IDE aus zu starten. Die Nachricht sollte dann nicht angezeigt werden.

Beachten Sie auch, dass wenn Sie ein Multithreadprogramm haben und nicht Hintergrundthreads ausgeführt werden, diese einen Prozess am Leben erhalten können, obwohl der Hauptthread beendet wurde.

0

Die graziösesten Weise eine Konsole Anwendung zu beenden ist aus der Main Methode zurückzukehren.

einfach Ihre Hauptmethode wie folgt deklarieren:

public static int Main(string[] args) 

und Sie

return x; 

verwenden können, um die Anwendung mit dem angegebenen Rückgabecode zu beenden.

+0

Application.Exit gibt mir diese zwei Fehler: Fehler Nur Zuordnung, anruf, Erhöhung, Senkung await und neue Objekt Ausdrücke als Aussage \t Fehler verwendet werden kann ‚Anwendung‘ ist eine mehrdeutige Referenz zwischen 'System.Windows.Forms.Application' und 'System.Windows.Application' – Mike

+0

@Mike Ich habe nicht über 'Application.Exit' gesprochen - haben Sie an der richtigen Stelle kommentiert? –

+0

Rückgabe x; beendet die Anwendung nicht – Mike

0

versuchen Application.Current.Shutdown()

+0

Fehler 'System.Windows.Forms.Application' enthält keine Definition für 'Current' \t Fehler 'Anwendung' ist ein mehrdeutiger Bezug zwischen ‚System. Windows.Forms.Application 'und' System.Windows.Application ' – Mike

+0

Warum werden sowohl Windows-Formulare als auch WPF-Assemblies in einer Konsolenanwendung referenziert? –

Verwandte Themen