MemoryStream的ReadTimeout异常

问题描述 投票:0回答:2

以下方法引发此异常

System.IO.Stream)(ms))。ReadTimeout引发了一个类型异常System.InvalidOperationException'

这是方法:

private static byte[] ImageToByteArraybyMemoryStream(Bitmap bmp)
{
    using (MemoryStream ms = new MemoryStream()) {
        bmp.Save(ms, bmp.RawFormat);        
        return ms.ToArray();
    }
}

但是,此错误并非始终发生。我将尽力解释发生的情况:

  • 我从文件中加载位图,显示并存储在Dictionary<int,Bitmap>
  • 当应用程序关闭时,我将位图写为byte[]到应用程序的配置文件中(并且无例外]
  • 在应用程序启动时,我从配置文件加载位图并显示它
  • [当用户更改应用程序数据时(例如调整位图大小或移动位图),我用与从文件加载位图并且发生此[[例外]]时相同的方式重写配置文件。
以下方法将引发此异常System.IO.Stream)(ms))。ReadTimeout引发了类型为System.InvalidOperationException的异常'这是该方法:private static byte [] ...
c# visual-studio-2008
2个回答
0
投票
我只是用Google搜索“通用gdi +错误”,其他人也遇到了bmp.Save方法的问题。他们的解决方法是从要保存的位图中创建一个新的位图,然后保存此副本。

0
投票
我遇到了这个问题,花了一段时间才了解到,上传图像的对象没有释放其定位的内存并对其进行锁定!并且垃圾回收没有处理该对象,因此API无法流式传输图像。它以某种方式第一次工作,然后会引发错误。
© www.soinside.com 2019 - 2024. All rights reserved.