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