使用BitmapSource时内存不足

本文关键字:内存不足 BitmapSource 使用 | 更新日期: 2023-09-27 18:08:40

我正在以30ms(30fps(的频率在运行时更改WPF图像的来源。我的记忆力不好。在下面的代码中,iImage是wpf应用程序显示和拥有的私有对象。字节是在创建窗口时读取并存储一次的字节数组。

如何避免内存不足?有没有更好的解决方案可以更好地显示原始字节数组的性能?

public void LoadBitmapImage(Byte[] bytes, Image iImage)
{  
  int bitsPerPixel = 24;
  double stride = (1024 * bitsPerPixel + 7) / 8;
  BitmapSource wBitmapSource = BitmapSource.Create(1024, 768, 96, 96, PixelFormats.Rgb24, null, bytes , (int)stride);      
  iImage.Source = wBitmapSource;
}

Thks

使用BitmapSource时内存不足

使用相同的代码,可以通过强制垃圾回收来解决内存问题。对于该位置,以下代码位于BitmapSource.Create上方。

//force garbage collection
System.GC.Collect();
System.GC.WaitForPendingFinalizers();