Мне нужно рисовать пиксель за пикселем и отображать его внутри WPF. Я пытаюсь сделать это, используя System.Drawing.Bitmap, затем используя CreateBitmapSourceFromHBitmap(), чтобы создать BitmapSource для управления изображением WPF. У меня есть утечка памяти где-то, потому что, когда вызов CreateBitmapSourceFromBitmap() вызывается многократно, использование памяти увеличивается и не уходит, пока приложение не закончится. Если я не вызываю CreateBitmapSourceFromBitmap(), заметного изменения в использовании памяти не наблюдается.
for (int i = 0; i < 100; i++)
{
var bmp = new System.Drawing.Bitmap(1000, 1000);
var source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
source = null;
bmp.Dispose();
bmp = null;
}
Что я могу сделать, чтобы освободить память BitmapSource?