具有0超时参数的ManualResetEvent.WaitOne的功能

时间:2014-02-26 13:19:50

标签: c# manualresetevent interrupted-exception waitone

我正在处理调用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或抛出异常的原因。到底发生了什么?

0 个答案:

没有答案