我正在处理调用ManualResetEvent
WaitOne来电的代码。
从MSDN文档中
如果超时为零,则该方法不会阻止。它测试等待句柄的状态并立即返回。
现在,这是我的代码:
Console.WriteLine("abc");
if (manualResetEventObject.WaitOne(0, false))
return;
Console.WriteLine("def");
//More function calls
这里,根据文档,我希望它能打印abc,从WaitOne返回并打印def。此时未发出manualResetEventObject
信号,因此WaitOne
的返回值应为false。
但是,从不打印def,我看到ThreadInterruptedException
被抛出(这里有一个try
/ catch
块。)
我不明白为什么这不会打印def或抛出异常的原因。到底发生了什么?