2012-08-10 9 views
0

J'ai une application C++ qui doit être fermée lorsqu'elle reçoit une commande d'arrêt. Lorsque cette commande est reçue, elle doit terminer tous les threads, nettoyer tout et quitter avec élégance.L'application C++ ne se termine pas

Le problème est que mon application ne s'arrête pas, elle reste simplement ouverte lorsque la commande est reçue.

Je crois que le problème est que je ne finalise pas tous les threads et poignées lorsque la commande d'arrêt est reçue, mais depuis mon application est assez grande, j'ai des problèmes pour localiser le thread ou la poignée qui tient vers le haut.

Existe-t-il un moyen de découvrir quel est le thread ou le handle qui n'est pas terminé? PS: j'utilise Visual Studio 2005 dans Windows XP SP3.

+3

Utilisez le débogueur. Déboguer + Windows + Threads pour voir les threads en cours d'exécution. Passez la souris ou double-cliquez sur un pour inspecter sa pile. –

+2

Attacher au processus dans un débogueur et jeter un coup d'œil? Toutefois, le processus doit se terminer lorsque votre thread principal se termine, êtes-vous sûr que cela se produit? – jcoder

+0

S'il vous plaît envisager d'ajouter le code. – Emiliano

Répondre

1

J'ai exécuté mon application dans le débogage et j'ai utilisé la fenêtre Threads pour voir qui ne fermait pas. J'ai mis à jour mon code et tout fonctionne bien maintenant.

Merci pour toutes les réponses.