5 votes

Comment faire en sorte qu'une application console apparaisse comme "ne répondant pas" ?

Pour les tests, quel est le moyen le plus simple de faire apparaître un programme ? "Pas de réponse ? Interrompre les messages de Windows ou le placer dans une boucle infinie ?

J'ai essayé une simple boucle comme

while(true)

Mais cela ne fonctionne pas. L'application de test est une application console C#. Le fait qu'elle s'exécute dans une console la rend-elle "plus réactive" ? Peut-être qu'il y a des éléments de la gestion de la console ajoutée qui font qu'elle répond tout le temps ?

Mise à jour :

Je l'ai transformé en une simple application Winform et je l'ai placée dans une boucle infinie. Cela a fonctionné comme un charme. Merci à Servy.

6voto

Servy Points 93720

Une application console ne sera jamais "sans réponse" du point de vue du gestionnaire des tâches de Windows. En réalité, le gestionnaire des tâches n'exécute pas votre programme, il exécute un shell (cmd.exe) qui exécute votre programme, et ce shell est écrit de telle sorte qu'il répondra toujours, même si votre programme ne répond pas. Si vous n'exécutez pas votre programme par l'intermédiaire d'un shell mais que vous le lancez directement, alors il n'y aura pas d'interface utilisateur pour le programme et il ne sera pas une "Application" dans le gestionnaire de tâches (ce qui signifie qu'il n'apparaîtra pas dans l'onglet "Application"), ce sera juste un processus.

Si vous avez juste besoin d'imiter un programme qui ne répond pas du point de vue du gestionnaire de tâches, vous devriez créer une simple application winforms et la placer dans une boucle infinie. S'il existe un moyen obscur de faire en sorte qu'un programme apparaisse comme "ne répondant pas" à partir d'une application console, ce sera au moins beaucoup plus difficile qu'à partir de n'importe quel type d'interface graphique de bureau standard.

3voto

Erix Points 3705

Vous pourriez faire une Thread.Sleep(X)

2voto

Justin Satyr Points 7510

Le moyen le plus simple de faire en sorte qu'un programme ne réponde pas indéfiniment est d'utiliser une boucle infinie :

while(true);

1voto

Micah Armantrout Points 3412

Travailler sur le thème de l'interface utilisateur (pour une application d'interface utilisateur)

Thread.Sleep  

  While (true)

Cela pourrait donner une idée plus précise de ce que vous essayez d'accomplir ( L'application console .net ne répond plus lorsqu'elle imprime de nombreux caractères à la suite. )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X