ManualResetEvent または同期プリミティブ (モニターなど) を使用してイベントやロックを待機する方法は知っていますが、次のようなものを実装する方法があるかどうか疑問に思っています。
ManualResetEvent resetEvent;
public string WaitForOneThousandMs()
{
resetEvent.Wait(1000);
if (WaitTime(resetEvent) <= 1000)
return "Event occured within 1000ms.";
else
return "Event did not occur within 1000ms.";
}
1) イベント X が発生するまで 1000ms 待ちます
2) 1000ms以内にイベントが発生した場合、パスAを実行
3) それ以外の場合は、パス B を実行します。
これは基本的に条件付きの待機関数であり、条件は待機時間です。可能であれば、それを実装する最良の方法は何でしょうか?