0

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()呼び出すことですが、フレームワークがよりエレガントなソリューションを持っているかどうか疑問に思っていました

4

0 に答える 0