Cześć.
Piszę program w którym rysuję na bieżąco kursor i go przypisuję aplikacji.
Kursor zmienia rozmiar za pomocą scrOLLa myszki.
kod rysowania wygląda tak:
private void PaintNewCursor()
{
Bitmap ba = new Bitmap(SizeCurs, SizeCurs);
this.Cursor.Dispose();
Graphics g = Graphics.FromImage(ba);
Pen p = new Pen(Color.Black);
g.DrawEllipse(p, 0, 0, SizeCurs, SizeCurs);
IntPtr ptr = ba.GetHicon();
this.Cursor = new Cursor(ptr);
ba.Dispose();
g.Dispose();
p.Dispose();
}
Gdzieś tu jest wyciek pamięci fizycznej. Im większy cursor tym większy wyciek.
Raz nie zauważyłem, że pamięci jest mało i ujrzałem blue screena O_o
Ma ktoś pomysł gdzie tutaj może być wyciek, albo co powoduje takie mocne pożarcie pamięci fizycznej?
Kursor w tej aplikacji często będzie zmieniał swój rozmiar, a więc jest to działanie nieuniknione.
Nie mam pomysłu co by poprawić w tym kodzie.