public AsyncCommandBuilder <T, C> Synchronized(EventWaitHandle waitHandle) { waitHandle.AssertNotNull(nameof(waitHandle)); var handler = _command.Handler; _command.Handler = async p => { waitHandle.WaitOne(); try { await handler(p); } finally { waitHandle.Set(); } }; return(this); }