ListPool怎么用
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"ListPool怎么用",在日常操作中,相信很多人在ListPool怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"ListPool怎么用"的疑惑
千家信息网最后更新 2026年10月31日ListPool怎么用
这篇文章主要介绍"ListPool怎么用",在日常操作中,相信很多人在ListPool怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"ListPool怎么用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
是什么
ListPool是Unity的UISystem源码中的List对象池,它是由ObjectPool 扩展而来的。具体源码如下
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是在游戏中经常会用到的数据结构,比如需要读取表格数据载入关卡表中的各项关卡,还有平时需要用到List的时候都需要临时new一个,后面的销毁完全交给C#。这种方式会导致不必要的GC,游戏中临时使用的List都应该考虑使用ListPool,而不是直接取new一个出来,List通过ListPool去管理。
怎么做
创建时调用
Listm_Positions = ListPool .Get();
销毁时调用
ListPool.Release(m_Positions);
需要注意的是,创建和销毁一定要成对出现,不然就失去了循环利用的效果了。
ListPool继承自ObjectPool,因此内部也是一个Stack(last-in-first-out (LIFO))后进先出的结构,当我们需要新建(Get)一个新的List的时候,先从Stack的堆顶取出第一个,当使用结束的时候将List释放掉(Release),也就是将其重新放回Stack堆里面。ListPool里面设置了Get的回调为null,Release时候的回调为List.Clear()函数,将List置空。
到此,关于"ListPool怎么用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
时候
学习
关卡
数据
时调
更多
源码
结构
帮助
实用
接下来
也就是
函数
后进
对象
常会
效果
数据结构
文章
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网科技公司
中智农互联网科技
保险科技 互联网保险
互联网科技活动banner
有马互联网科技
深圳齐家互联网科技
科技伦理 互联网公司
彤创互联网科技有限公司
互联网科技产业特征
特约风豹互联网科技为什么扣费
富国互联网金融科技混合基金
山东大美朱楼互联网科技有限公司
九思连强互联网电子科技有限公司
上海同邻互联网科技有限公司规模
绵阳真晨互联网科技有限公司
长沙易易互联网科技有限公司
科技美学互联网 艺术
广州全民伙伴互联网科技有限公司
株洲百竞科技的互联网营销顾问
花魁咖啡
博彦科技互联网金融
互联网科技与金融科技
世界互联网领先科技成果
艾特科技互联网
阿里互联网科技公司
西安有哪些互联网高科技企业
上海万顺科技互联网有限公司招聘
易租星互联网科技有限公司
北京天晋互联网科技有限公司