2010-11-09 3 views
0

Un programme MFC (document unique avec vue formulaire) comporte des sous-threads qui accèdent à certains contrôles sur l'interface graphique MFC. Le thread principal est souhaité quitter après tous les sous-threads quitter. J'ai essayé de notifier les sous-threads pour les quitter et les attendre dans le gestionnaire OnDestroy. Cependant, il y a un dilemme ici. Parce que les sous-threads peuvent être des contrôles de l'interface graphique SendMessage pendant que la boucle de messages principale est bloquée dans le gestionnaire OnDestroy. C'est une impasse. J'ai une idée pour résoudre ceci: J'espère qu'il pourrait y avoir un moyen de gérer WM_CLOSE ou WM_QUIT de MFC et utiliser un message personnalisé comme UDM_QUIT qui est envoyé par les sous-threads au thread principal pour faire la démission réelle, pendant ce temps je ne N'attendez pas les sous-threads pour quitter le gestionnaire OnDestroy. Mais je ne suis pas un gourou MFC et je ne sais pas comment y parvenir.MFC multithreading conception dilemme: comment quitter l'application avec élégance?

Répondre

0

Je me rends compte que je peux gérer OnClose du cadre principal pour réaliser l'idée que j'ai mentionnée ci-dessus.