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

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

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

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

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

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

字體池代碼:

/// <summary>
/// 字體緩存類
/// </summary>
public static class FontStatic
{
  /// <summary>
  /// 緩存數(shù)組
  /// </summary>
  private static Dictionary<string, Font> sFonts = new Dictionary<string, Font>();
 
  /// <summary>
  /// 根據(jù)字體獲取一個緩存的字體對象
  /// </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)鍵點在于判斷需要創(chuàng)建的字體是否已存在緩存字典中,經(jīng)過探索,不能使用Equals等方法,只能折中采用幾個關(guān)鍵屬性組合判斷的方式

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

相關(guān)文章

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

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

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

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

    數(shù)組存儲多個相同類型的一種非常常用的數(shù)據(jù)結(jié)構(gòu),它長度是固定,也就是數(shù)組一旦創(chuàng)建大小就固定了,C# 數(shù)組不支持動態(tài)長度,那在C#中是否有方法可以調(diào)整數(shù)組大小呢?本文將通過示例介紹一種調(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ù)表的方法,較為詳細的講述了SqlBulkCopy批量復(fù)制數(shù)據(jù)到數(shù)據(jù)表的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2014-10-10
  • C#如何打開選擇文件對話框和選擇目錄對話框

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

德格县| 台州市| 星子县| 桓台县| 安徽省| 深水埗区| 禹州市| 高要市| 延吉市| 黔南| 本溪市| 土默特左旗| 尚志市| 抚州市| 莎车县| 湘乡市| 长宁县| 固镇县| 太和县| 黎平县| 宁德市| 乌拉特后旗| 凤城市| 察隅县| 莱芜市| 两当县| 西宁市| 繁昌县| 台中县| 涟水县| 云南省| 丹凤县| 白银市| 阜阳市| 毕节市| 灌云县| 绥江县| 吉木乃县| 武川县| 莒南县| 噶尔县|