Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 2008
-
6 juin 2006 à 18:04
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 2008
-
6 juin 2006 à 18:13
J'utilise un morceau de code assez "banal" pour effectuer une capture d'écran. Cependant, dans mon projet, j'effectue de nombreuses captures d'écran... et je me suis rendu compte que la mémoire montait en flèche. Après "profilage", il semblerai que c'est le code effectuant la capture d'écran qui ne libèrerait pas toutes les ressources, provoquant la fuite mémoire.
J'ai fait le test en appelant ce code toutes les secondes, et ca grimpe vraiment vite. J'ai testé aussi en forçant le garbage collector toutes les 5 secondes, mais ça ne change rien du tout. La mémoire reviens à la normale uniquement lorsque l'appli est quittée.
Y'a quelque chose que je fais mal? ou c'est une fuite "connue" de GDI ? (m'étonnerait quand même...)
[DllImport("gdi32.dll")]
public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hObjectSource, int nXSrc, int nYSrc, int dwRop);
[DllImport("user32.dll")]
public static extern IntPtr GetDesktopWindow();