C# 为什么我应该在使用位图时保持流打开

C# 为什么我应该在使用位图时保持流打开,c#,.net,C#,.net,我不明白为什么在使用Bitmap或Image时要保持流打开 我试着关闭流,用几种方式使用我的图像,一切都很好 问题是在什么情况下,如果在初始化图像对象之后继续关闭流,我会得到异常?通过或创建图像时,图像类不会读取整个图像,而是读取到足以响应基本查询(如大小和像素格式) 只有尝试以任何方式访问像素(通常通过在屏幕上绘制图像),它才会读取图像数据 这种惰性意味着它在以后需要访问底层流(或文件)时需要访问底层流。当然,您可以将图像数据读取到内存流中(或者使用其他API立即加载图像),以便关闭底层文件。

我不明白为什么在使用
Bitmap
Image
时要保持流打开

我试着关闭流,用几种方式使用我的图像,一切都很好


问题是在什么情况下,如果在初始化
图像
对象之后继续关闭流,我会得到异常?

通过或创建
图像时,
图像
类不会读取整个图像,而是读取到足以响应基本查询(如大小和像素格式)

只有尝试以任何方式访问像素(通常通过在屏幕上绘制图像),它才会读取图像数据


这种惰性意味着它在以后需要访问底层流(或文件)时需要访问底层流。

当然,您可以将图像数据读取到内存流中(或者使用其他API立即加载图像),以便关闭底层文件。但是,只有当文件处于打开状态存在问题时,才需要这样做。