public bool Exist(Guid id, out RecyclableObject obj) { using (new LockWait(ref _lock)) { return(_map.TryGetValue(id, out obj)); } }
public static RecyclableObject Allocate(Type type, IEnvironment env) { RecyclableObject t = GetCollection(env).Get(type) as RecyclableObject; t._env = env; t.OnAllocate(); return(t); }
/// <summary> /// 分配一个实例 /// </summary> /// <param name="type"></param> /// <param name="env"></param> /// <returns></returns> public static RecyclableObject Allocate(Type type, FrameworkEnvironment env) { RecyclableObject t = env.cycleCollection.Get(type) as RecyclableObject; t._env = env; t.OnAllocate(); return(t); }
public void Set(RecyclableObject obj) { using (new LockWait(ref _lock)) { Guid id = obj.guid; if (_map.ContainsKey(id)) { throw new Exception("Same Key"); } else { _map.Add(id, obj); } } }
/// <summary> /// 获取没有回收的实例 /// </summary> /// <param name="id"></param> /// <param name="obj"></param> /// <returns></returns> public bool GetFromMemory(Guid id, out RecyclableObject obj) { return(_memory.Exist(id, out obj)); }
/// <summary> /// 回收一个实例 /// </summary> /// <param name="type"></param> /// <param name="t"></param> /// <param name="arg"></param> public void Set(Type type, RecyclableObject t, IEventArgs arg = null) { _memory.Remove(t.guid); _createPool.Set(type, t, arg); }
/// <summary> /// 获取没有回收的实例 /// </summary> /// <param name="envType"></param> /// <param name="id"></param> /// <param name="obj"></param> /// <returns></returns> public static bool GetFromMemory(EnvironmentType envType, Guid id, out RecyclableObject obj) { var _env = Framework.GetEnv(envType); return(GetFromMemory(_env, id, out obj)); }
/// <summary> /// 获取没有回收的实例 /// </summary> /// <param name="env"></param> /// <param name="id"></param> /// <param name="obj"></param> /// <returns></returns> public static bool GetFromMemory(IEnvironment env, Guid id, out RecyclableObject obj) { return(GetCollection(env).GetFromMemory(id, out obj)); }
/// <summary> /// 获取没有回收的实例 /// </summary> /// <param name="env"></param> /// <param name="id"></param> /// <param name="obj"></param> /// <returns></returns> public static bool GetFromMemory(FrameworkEnvironment env, Guid id, out RecyclableObject obj) { return(env.cycleCollection.GetFromMemory(id, out obj)); }