Мне нужно рисовать пиксель за пикселем и отображать его внутри 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
?