private void OnEvents() { lock (lockObject) { localQueue = concurrentQueue; concurrentQueue = new Queue<Action>(); } while (this.localQueue.Count > 0) { Action a = this.localQueue.Dequeue(); a(); } }