Abbotware.Core.Threading.ScopedEventHandleGuard.ScopedEventHandleGuard C# (CSharp) Method

ScopedEventHandleGuard() public method

Initializes a new instance of the ScopedEventHandleGuard class.
public ScopedEventHandleGuard ( EventWaitHandle eventHandle, ILogger logger ) : System
eventHandle EventWaitHandle mutex object the scoped guard is wrapping
logger ILogger injected logger
return System
        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!");
            }
        }