web-dev-qa-db-fra.com

Comment empêcher les applications console C # de se fermer automatiquement?

Mes applications de console sur Visual Studio se ferment automatiquement, je voudrais donc utiliser quelque chose comme system("PAUSE") de C pour "mettre en pause" les applications à la fin de son exécution, comment puis-je y parvenir?

340
Zignd
Console.ReadLine();

ou

Console.ReadKey();

ReadLine() attend , ReadKey() attend toute touche (sauf les touches de modification).

Edit: a volé le symbole de la clé à Darin.

521
Adam

Vous pouvez simplement compiler (commencer le débogage) votre travail avec Ctrl+F5.

L'essayer Je le fais toujours et la console me montre mes résultats ouverts dessus. Aucun code supplémentaire n'est nécessaire.

152
Silvia Z

Essayez Ctrl + F5 dans Visual Studio pour exécuter votre programme. Cela ajoutera une pause avec "Appuyez sur n’importe quelle touche pour continuer ..." automatiquement sans aucune fonction Console.Readline () ou ReadKey ().

43
Sohail xIN3N

Console.ReadLine() pour attendre que l'utilisateur Enter ou Console.ReadKey pour attendre une touche.

35
Darin Dimitrov

Utilisation:

Console.ReadKey();

Pour qu'il se ferme lorsque quelqu'un appuie sur une touche quelconque ou:

Console.ReadLine();

Pour quand l'utilisateur tape quelque chose et appuie sur Entrée.

24
matthewr

Ctrl + F5 est préférable, car vous n'avez pas besoin de lignes supplémentaires. Et vous pouvez, à la fin, appuyer sur entrer et quitter le mode de fonctionnement.

Mais, lorsque vous démarrez un programme avec F5 et que vous mettez un point d'arrêt, vous pouvez déboguer votre application, ce qui vous donne d'autres avantages.

13

Alternativement, vous pouvez retarder la fermeture en utilisant le code suivant:

System.Threading.Thread.Sleep(1000);

Notez que la Sleep utilise des millisecondes.

11
gotqn

Les solutions mentionnées changent le fonctionnement de votre programme.

Vous pouvez bien sûr placer #if DEBUG et #endif autour des appels de la console, mais si vous voulez vraiment empêcher la fenêtre de se fermer uniquement sur votre machine de développement sous Visual Studio ou si VS ne s'exécute pas uniquement si vous configurez-le explicitement, et vous ne voulez pas que le 'Press any key to exit...' gênant s'exécute depuis la ligne de commande, vous devez utiliser l'API System.Diagnostics.Debugger.

Si vous voulez seulement que cela fonctionne dans DEBUG, enveloppez simplement ce code dans une méthode [Conditional("DEBUG")] void BreakConditional().

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

Cela fonctionne également pour déboguer des programmes qui ont besoin de privilèges élevés ou qui doivent pouvoir s’élever eux-mêmes.

9
Eric

Si vous ne voulez pas que le programme se ferme même si un utilisateur appuie sur une touche quelconque;

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