35 lines
865 B
C#
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);
|
|
}
|
|
}
|
|
} |