C#字体池技术实现代码详解-创新互联

字体池的应用,主要是为了解决字体不断创建导致句柄泄漏/内存泄漏的问题,这个问题在Android上也同样存在。

创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、成都网站设计、成都网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

经测试,C# WinForm原生控件不存在字体问题,但是使用的第三方控件Dev 14.1就存在这样的问题。

所以参照线程池思路,想到了使用字体池的方式,使系统中的字体统一为一个对象,经测试,有效解决了泄漏问题。

字体池代码:

/// 
/// 字体缓存类
/// 
public static class FontStatic
{
  /// 
  /// 缓存数组
  /// 
  private static Dictionary sFonts = new Dictionary();
 
  /// 
  /// 根据字体获取一个缓存的字体对象
  /// 
  /// 字体
  /// 已缓存字体
  public static Font GetFont(Font font)
  {
    string key = string.Format("{0}-{1}-{2}-{3}", font.Name, font.Size, font.Italic, font.Bold);
    if (!sFonts.ContainsKey(key))
    {
      sFonts.Add(key, font);
    }
 
    return sFonts[key];
  }
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:C#字体池技术实现代码详解-创新互联
文章源于:http://bzwzjz.com/article/djiops.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 自适应网站建设 企业网站设计 成都品牌网站设计 重庆企业网站建设 网站设计 网站制作 成都网站制作 成都定制网站建设 成都网站建设 重庆电商网站建设 成都网站制作公司 网站建设 营销型网站建设 定制网站设计 定制网站建设 四川成都网站建设 网站建设费用 成都网站建设公司 网站建设公司 网站建设公司 企业网站制作 成都网站设计