private void Update() { lock (locker) { while (msgQueue.Count > 0) { MsgData msg = msgQueue.Dequeue(); if (!msg.Action.Target.Equals(null)) { msg.Action(msg.data); } Pool <MsgData> .Instance.Recycle(msg); } } }