EventWaitHandle
への呼び出しによって信号が送信されたか、Set();
タイムアウトになったかを判断する方法はありますか? 例:
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();
}
私が考えることができる唯一のオプションはbool
、毎回変化する変数を保持しWaitOne()
てSet()
呼び出すことですが、フレームワークがよりエレガントなソリューションを持っているかどうか疑問に思っていました