c# - Mono 上的 System.Threading.Thread.Sleep 和 Timeout.Infinite

标签 c# mono sleep

我这里遇到了一个奇怪的问题。我在 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/

相关文章:

c# - C# 中两个整数元组的总和

c# - 如何管理用于XDocument格式化的 "NO-BREAK SPACE"?

c# - 找不到与 asp.net 网站项目中命名的 Controller 匹配的类型

c# - mono.exe 不是有效的 Win32 应用程序 (WindowsXP)

android - 如何在 C (Linux) 的 while 循环中准确 sleep ?

c# - 使用 String.ToUpperInvariant() 规范化字符串

linux - 将 ASP.NET 代码通过 FTP 传输到 Linux 系统后修复权限

.net - 创建可移植类库的原因(在体系结构意义上)?

c - 函数 sleep() 在被动时是主动的吗?

c# - 父线程休眠时子线程也休眠?