2010-03-12 5 views
2

Visual Studio 2005 C++ Windows XP Profenêtres de la console ne se referment pas après le programme d'arrêt

J'ai un exemple d'application que je teste, qui relie avec les bibliothèques Boost.

Cependant, le programme fonctionne correctement. Toutefois, lorsque j'essaie d'arrêter le programme en cliquant sur le bouton "Arrêter le débogage". Le programme se termine, mais la fenêtre de la console reste ouverte. J'ai donc beaucoup d'entre eux, car au cours de mes tests, je commence et arrête l'application.

Même lorsque j'essaie de le fermer en cliquant sur le bouton de fermeture, cela n'a aucun effet. Et il ne semble pas apparaître sous le gestionnaire de tâches lorsque le programme se termine.

La seule façon dont je peux les fermer si je redémarre Windows.

Je pense qu'il pourrait s'agir d'un thread qui ne s'est pas fermé, et peut-être que les fenêtres de la console restent ouvertes.

Un grand merci pour tous les conseils,

+0

J'ai également vu ce problème, je pense que cela arrive quand un mutex ou un sémaphore est toujours verrouillé, ou un thread n'a pas quitté proprement. Le seul moyen que j'ai trouvé pour éviter cela est de s'assurer que tous les mutex/sémaphores/threads sont nettoyés après avoir arrêté le débogueur. –

+0

@Sam: Faites votre commentaire une réponse qui peut être upvoted et, finalement, acceptée. – sbi

Répondre

1

J'ai vu aussi cette question, je pense que ce qui se passe quand un mutex ou sémaphores est toujours verrouillé, ou un fil n'a pas proprement sorti. Le seul moyen que j'ai trouvé pour éviter cela est de s'assurer que tous les mutex/sémaphores/threads sont nettoyés après avoir arrêté le débogueur.

Il est également intéressant de noter que ce problème ne se produit pas sur Windows 7 ou Linux. J'ai essayé d'arrêter le même programme aux mêmes endroits et le programme sort toujours proprement.

Bonne chance et bon codage!

Questions connexes