EventWaitHandle signal reason

107 Views Asked by At

Is there any way to determine if an EventWaitHandle was signaled by a call to Set(); or was timed out? an example:

private static EventWaitHandle ThreadWaiter =
        new EventWaitHandle(false, EventResetMode.AutoReset);

    private void StartLongAction()
    {
        ThreadWaiter.WaitOne(5000);

        //detect signal reason
        if(ThreadWaiter was signaled)
        {

        }
        //detect signal reason
        else if(ThreadWaiter was timedout)
        {

        }
    }

    public void HardwareEvent(EventArgs e)
    {
        ThreadWaiter.Set();
    }

The only option that I could think of is to hold a bool variable that will change on every WaitOne() and Set() call but I was wondering if the framework has a more elegant solution

0

There are 0 best solutions below