public void BlockingResMod(ResAction action) { var wait = new AutoResetEvent(false); action.SetSignal(wait); lock (ResActionQueue) { ResActionQueue.Enqueue(action); } wait.WaitOne(); }