资源位图属性上的延迟加载程序

时间:2014-07-16 10:23:47

标签: c# winforms resources

我得到了一些包含在Windows资源上的位图。问题是,每次我访问Resources属性时,ResourceManager.GetObject()将始终创建位图的新实例,当然,最后我遇到了一些内存问题。

// Auto-generated code 
class Resources { 
        internal static System.Drawing.Bitmap IconMan16 {
            get {
                object obj = ResourceManager.GetObject("IconMan16 ", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
}

好像这个类资源在我的应用程序中使用了太多次,我无法改变我调用它的方式。

有没有办法(不编辑自动生成的文件)阻止资源每次我要求属性时都创建一个新实例?类似于:

// Auto-generated code 
class Resources {

        private static  System.Drawing.Bitmap iconMan16Cache  ; 

        internal static System.Drawing.Bitmap IconMan16 {
            get {

                return iconMan16Cache ? (iconMan16Cache = ((System.Drawing.Bitmap)(ResourceManager.GetObject("IconMan16 ", resourceCulture))));  // Thread-safety is not the question
            }
        }
}

0 个答案:

没有答案