public object ExecuteCommand(ICommand command) { AssertNotPaused(); Assertion.AssertParameterNotNull("command", command); AcquireWriterLock(); try { return DoExecuteCommand(command); } finally { ReleaseWriterLock(); } }