public static ThreadMsg <T> Create(T data, Action <T> onMsg) { InitPool(); ThreadMsg <T> ret = m_Pool.GetObject(); ret.Data = data; ret.OnMsg = onMsg; return(ret); }
public void CreateThreadMsg <T>(T data, Action <T> onMsg) { lock (m_Lock) { ThreadMsg <T> msg = ThreadMsg <T> .Create(data, onMsg); m_MsgList.AddLast(msg.ListNode); } }
private static void InPool(ThreadMsg <T> obj) { if (obj == null) { return; } InitPool(); obj.Data = default(T); obj.OnMsg = null; m_Pool.Store(obj); }