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