using System.Collections.Generic; namespace ZC { public static class TokenPool { private static List runningInfos = new List(); private static List disposeInfos = new List(); 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); } } }