fuite mémoire, quelles solutions ?
Bonjour,
Avec ce code :
Code:
1 2 3 4 5 6 7
|
private void button1_Click(object sender, EventArgs e)
{
PictureBox pb = new PictureBox();
pb.Image = new Bitmap("c:\\image.jpg");
this.Controls.Add(pb);
} |
on remarque bien qu'il y a une fuite mémoire, à chaque fois qu'on clique sur le bouton on charge la bitmap sans jamais la libérer.
Pour remédier à ce problème, j'ai opté pour cette solution :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
private PictureBox pb;
private void button1_Click(object sender, EventArgs e)
{
if (pb != null)
pb.Dispose();
pb = new PictureBox();
pb.Image = new Bitmap("c:\\image.jpg");
this.Controls.Add(pb);
GC.Collect();
} |
Qu'en pensez-vous de cette solution ? existe-t-il une autre solution plus élégante ?
Merci
+