正確にはいつWaitHandle WaitOne(int timeout)
戻ってきますか?タイムアウトが経過すると戻りますか? WaitOne()
終了する前にいくつかのクリーンアップを行うロジックを実装するときにポーリングを提案するオンラインのコードをいくつか見ます。これは、タイムアウトが経過しても WaitOne() が戻らないことを意味します。代わりに、呼び出された直後に通知されたかどうかを返します。
public void SomeMethod()
{
while (!yourEvent.WaitOne(POLLING_INTERVAL))
{
if (IsShutdownRequested())
{
// Add code to end gracefully here.
}
}
// Your event was signaled so now we can proceed.
}
ここで達成しようとしているのは、呼び出し元のスレッドをブロックしてWaitHandle
いる間に使用を通知する方法です。CancellationToken