Framework_YooAsset_HybridCLR/Assets/DemoGame/GameScript/Hotfix/Pool/TokenPool.cs

35 lines
865 B
C#

using System.Collections.Generic;
namespace ZC
{
public static class TokenPool
{
private static List<TokenInfo> runningInfos = new List<TokenInfo>();
private static List<TokenInfo> disposeInfos = new List<TokenInfo>();
public static ITokenInfo GetToken()
{
TokenInfo info;
if (disposeInfos.Count <= 0)
{
info = new TokenInfo(1);
info.DisposeAction = Dispose;
}
else
{
info = disposeInfos[0];
disposeInfos.RemoveAt(0);
}
info.Init();
runningInfos.Add(info);
return info;
}
private static void Dispose(TokenInfo info)
{
runningInfos.Remove(info);
disposeInfos.Add(info);
}
}
}