public ScopedEventHandleGuard(EventWaitHandle eventHandle, ILogger logger) : base(logger) { Arguments.NotNull(eventHandle, nameof(eventHandle)); Arguments.NotNull(logger, nameof(logger)); this.eventHandle = eventHandle; var result = this.eventHandle.Reset(); if (!result) { throw new InvalidOperationException("Reset on event handle failed!"); } }