Механизм тайм-аута семафора в C # - PullRequest
8 голосов
/ 16 сентября 2009

Кто-нибудь знает, как .NET обрабатывает тайм-аут при вызове на Semaphore.WaitOne(timeout)?

Я бы ожидал TimeoutException, но в документации MSDN его нет в списке ожидаемых исключений, и я не могу найти его где-либо задокументированным.

Заранее спасибо!

1 Ответ

8 голосов
/ 16 сентября 2009

Метод вернет false, если истечет время ожидания, и true, если вернет сигнал:

if (mySemaphore.WaitOne(1000))
{
    // signal received
}
else
{
    // wait timed out
}
...