我这里遇到了一个奇怪的问题。我在 Red Hat Enterprise Linux 上使用 Mono 运行以下 C# 代码。我看到的是 Thread.Sleep( Timeout.Infinite );有时根本不 sleep 。我期望的是线程在 sleep 时阻塞,其他一些线程在 sleep 线程上执行 Interrupt() 并“捕获异常!”行被打印。
我看到的是打印“Pre”和“Post”。 (顺便说一句,我正在维护别人的代码,我不会使用 sleep ,但我现在必须忍受它)。
我上网查了一下,想看看是否存在 Thread.Sleep 不 sleep 但找不到任何东西的情况。如有任何提示,我们将不胜感激。
米杰
try{
Console.WriteLine("Pre");
Thread.Sleep( Timeout.Infinite );
Console.WriteLine("Post");
} catch( ThreadInterruptedException e )
{
Console.WriteLine( "Exception caught!" );
}
最佳答案
实际上,这是 Mono 中的一个错误。请参阅错误 683519。
关于c# - Mono 上的 System.Threading.Thread.Sleep 和 Timeout.Infinite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461894/