سؤال

لا أحد يعرف كيف يتعامل مع صافي مهلة على استدعاء Semaphore.WaitOne(timeout)؟

وأتوقع لTimeoutException، ولكن وثائق MSDN لا تسرد هذا في قائمة الاستثناءات المتوقعة، وأنا لا يمكن أن يبدو للعثور عليه موثقة في أي مكان.

ويرجع الفضل في ذلك مسبقا!

هل كانت مفيدة؟

المحلول

وهذه الطريقة سوف يعود false إذا انقضاء المهلة، وtrue اذا عاد إشارة:

if (mySemaphore.WaitOne(1000))
{
    // signal received
}
else
{
    // wait timed out
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top