最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#字體池技術(shù)實(shí)現(xiàn)代碼詳解

 更新時(shí)間:2019年11月24日 11:32:52   作者:未聞·Yokeqi  
在本篇文章里小編給大家整理的是關(guān)于C#字體池技術(shù)實(shí)現(xiàn)代碼詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。

字體池的應(yīng)用,主要是為了解決字體不斷創(chuàng)建導(dǎo)致句柄泄漏/內(nèi)存泄漏的問(wèn)題,這個(gè)問(wèn)題在Android上也同樣存在。

經(jīng)測(cè)試,C# WinForm原生控件不存在字體問(wèn)題,但是使用的第三方控件Dev 14.1就存在這樣的問(wèn)題。

所以參照線程池思路,想到了使用字體池的方式,使系統(tǒng)中的字體統(tǒng)一為一個(gè)對(duì)象,經(jīng)測(cè)試,有效解決了泄漏問(wèn)題。

字體池代碼:

/// <summary>
/// 字體緩存類
/// </summary>
public static class FontStatic
{
  /// <summary>
  /// 緩存數(shù)組
  /// </summary>
  private static Dictionary<string, Font> sFonts = new Dictionary<string, Font>();
 
  /// <summary>
  /// 根據(jù)字體獲取一個(gè)緩存的字體對(duì)象
  /// </summary>
  /// <param name="font">字體</param>
  /// <returns>已緩存字體</returns>
  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];
  }
}

這里關(guān)鍵點(diǎn)在于判斷需要?jiǎng)?chuàng)建的字體是否已存在緩存字典中,經(jīng)過(guò)探索,不能使用Equals等方法,只能折中采用幾個(gè)關(guān)鍵屬性組合判斷的方式

以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),希望腳本之家整理的內(nèi)容能夠幫助到大家。

相關(guān)文章

  • unity實(shí)現(xiàn)貪吃蛇游戲

    unity實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 調(diào)整C#中數(shù)組大小的方法

    調(diào)整C#中數(shù)組大小的方法

    數(shù)組存儲(chǔ)多個(gè)相同類型的一種非常常用的數(shù)據(jù)結(jié)構(gòu),它長(zhǎng)度是固定,也就是數(shù)組一旦創(chuàng)建大小就固定了,C# 數(shù)組不支持動(dòng)態(tài)長(zhǎng)度,那在C#中是否有方法可以調(diào)整數(shù)組大小呢?本文將通過(guò)示例介紹一種調(diào)整一維數(shù)組大小的方法,需要的朋友可以參考下
    2024-06-06
  • C#使用SqlBulkCopy批量復(fù)制數(shù)據(jù)到數(shù)據(jù)表

    C#使用SqlBulkCopy批量復(fù)制數(shù)據(jù)到數(shù)據(jù)表

    這篇文章主要介紹了C#使用SqlBulkCopy批量復(fù)制數(shù)據(jù)到數(shù)據(jù)表的方法,較為詳細(xì)的講述了SqlBulkCopy批量復(fù)制數(shù)據(jù)到數(shù)據(jù)表的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2014-10-10
  • C#如何打開選擇文件對(duì)話框和選擇目錄對(duì)話框

    C#如何打開選擇文件對(duì)話框和選擇目錄對(duì)話框

    這篇文章主要介紹了C#如何打開選擇文件對(duì)話框和選擇目錄對(duì)話框問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C#值類型和引用類型的深入理解

    C#值類型和引用類型的深入理解

    本篇文章主要是對(duì)C#中值類型和引用類型進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • C#處理datagridview虛擬模式的方法

    C#處理datagridview虛擬模式的方法

    這篇文章主要介紹了C#處理datagridview虛擬模式的方法,實(shí)例分析了C#中datagridview的使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#商品管理系統(tǒng)簡(jiǎn)易版

    C#商品管理系統(tǒng)簡(jiǎn)易版

    這篇文章主要為大家詳細(xì)介紹了C#商品管理系統(tǒng)簡(jiǎn)易版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#多線程系列之多線程鎖lock和Monitor

    C#多線程系列之多線程鎖lock和Monitor

    這篇文章介紹了C#多線程鎖lock和Monitor的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#使用遠(yuǎn)程服務(wù)調(diào)用框架Apache Thrift

    C#使用遠(yuǎn)程服務(wù)調(diào)用框架Apache Thrift

    這篇文章介紹了C#使用遠(yuǎn)程服務(wù)調(diào)用框架Apache Thrift的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#中使用XmlDocument類來(lái)創(chuàng)建和修改XML格式的數(shù)據(jù)文件

    C#中使用XmlDocument類來(lái)創(chuàng)建和修改XML格式的數(shù)據(jù)文件

    這篇文章主要介紹了C#中使用XmlDocument類來(lái)創(chuàng)建和修改XML格式的數(shù)據(jù)文件的方法,XmlDocument類被包含在.NET框架中,需要的朋友可以參考下
    2016-04-04

最新評(píng)論

宁晋县| 板桥市| 五华县| 贵港市| 洱源县| 会宁县| 平山县| 芜湖市| 洪洞县| 巴南区| 宝坻区| 唐山市| 黄骅市| 凭祥市| 绩溪县| 宿松县| 崇义县| 东方市| 怀来县| 巧家县| 扎赉特旗| 岳池县| 阿巴嘎旗| 兴海县| 小金县| 苏州市| 长武县| 南昌县| 桃园县| 盘山县| 营山县| 洛南县| 苍溪县| 浦北县| 兴文县| 楚雄市| 巴彦县| 嘉善县| 海城市| 重庆市| 和田市|