1

我正在处理对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 或为什么抛出异常。这里到底发生了什么?

4

0 回答 0