UnmanagedMemoryStream处理和内存泄漏

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()?如果包含方法是非静态的,这将如何改变?在这种情况下是否可能泄漏非托管内存?

Jon*_*eet 5

image配置,将处置流的- Image.FromStream实际上取它给流的所有权.

特别是,如果你没有在配置流using在这里的讲话,图像将是不可用的,至少对某些图像类型.