-
Probleme perte memoire
Bonjour !!!
Je utilise Visual Studio 2008 et MFC.
Je voulais savoir comment fonctionne le OnPaint.
J'ai cree un Thread qui appelle RedrawWindow.
Cet appel peut il poser des problemes ? Cela est il "propre" ???
Au debugger, l'appel à RedrawWindow ne m'envoie pas dans le OnPaint. Le OnPaint est il Threadé ??
J ai des petits problemes de perte de memoire. Intel Parallel Studio ne detecte pas de memory leak. En fait, je perds quelques Ko parfois quand je lance le thread, mais pas toujours. Je ne vois pas de régularité. Est il possible que de la memoire soit alloue pour les composants graphiques de temps en temps et que celle ci ne soit jamais rendue ?
Merci de vos reponses !!!
-
Comment faites vous ( la méthode ) pour savoir que vous perdez de la mémoire ?
-
En MFC, les rafraichissements des IHM se font de manière asynchrone.
RedrawWindow ne fait que "poster" un message de demande régénération de l'IHM au thread ayant créé la fenêtre.
"poster" est entre parenthèse car ce n'est pas vraiment un message mais une structure de données du noyau qui est mise à jour et cette structure est lue par la pompe à message du thread de la fenêtre MFC quand il n'existe plus de "vrai" message dans la file de message du thread.
La gestion de l'appel OnPaint est donc très très indirecte.
La question de LittleWhite est très bonne aussi.