真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ListPool怎么用

這篇文章主要介紹“ListPool怎么用”,在日常操作中,相信很多人在ListPool怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”ListPool怎么用”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

濉溪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

是什么

ListPool是Unity的UISystem源碼中的List對(duì)象池,它是由ObjectPool擴(kuò)展而來的。具體源碼如下

using System;
using System.Collections.Generic;
using UnityEngine;

namespace UnityEngine.UI
{
   internal static class ListPool
   {
       // Object pool to avoid allocations.
       private static readonly ObjectPool> s_ListPool = new ObjectPool>(null, Clear);
       static void Clear(List l) { l.Clear(); }

       public static List Get()
       {
           return s_ListPool.Get();
       }

       public static void Release(List toRelease)
       {
           s_ListPool.Release(toRelease);
       }
   }
}

為什么

List是在游戲中經(jīng)常會(huì)用到的數(shù)據(jù)結(jié)構(gòu),比如需要讀取表格數(shù)據(jù)載入關(guān)卡表中的各項(xiàng)關(guān)卡,還有平時(shí)需要用到List的時(shí)候都需要臨時(shí)new一個(gè),后面的銷毀完全交給C#。這種方式會(huì)導(dǎo)致不必要的GC,游戲中臨時(shí)使用的List都應(yīng)該考慮使用ListPool,而不是直接取new一個(gè)出來,List通過ListPool去管理。

怎么做

創(chuàng)建時(shí)調(diào)用

List m_Positions = ListPool.Get();

銷毀時(shí)調(diào)用

ListPool.Release(m_Positions);

需要注意的是,創(chuàng)建和銷毀一定要成對(duì)出現(xiàn),不然就失去了循環(huán)利用的效果了。

ListPool繼承自O(shè)bjectPool,因此內(nèi)部也是一個(gè)Stack(last-in-first-out (LIFO))后進(jìn)先出的結(jié)構(gòu),當(dāng)我們需要新建(Get)一個(gè)新的List的時(shí)候,先從Stack的堆頂取出第一個(gè),當(dāng)使用結(jié)束的時(shí)候?qū)ist釋放掉(Release),也就是將其重新放回Stack堆里面。ListPool里面設(shè)置了Get的回調(diào)為null,Release時(shí)候的回調(diào)為L(zhǎng)ist.Clear()函數(shù),將List置空。

到此,關(guān)于“ListPool怎么用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


分享文章:ListPool怎么用
分享路徑:http://weahome.cn/article/gogogj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部