Mat*_*t B 1 c# garbage-collection dispose unmanagedresources
考虑以下代码片段并忽略缺少using子句或明确处理:
public static Image GetImage(string imageName)
{
Image image = null;
Stream unmanagedMemoryStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(imageName);
image = Image.FromStream(unmanagedMemoryStream);
return image;
}
什么时候在unmanagedMemoryStream上调用Dispose()?如果包含方法是非静态的,这将如何改变?在这种情况下是否可能泄漏非托管内存?
当image配置,将处置流的- Image.FromStream实际上取它给流的所有权.
特别是,如果你没有在配置流using在这里的讲话,图像将是不可用的,至少对某些图像类型.