ASP.NET基础教程 控件编程 .NET设计模式高级应用
返回首页
当前位置: 首页 > ASP.NET教程 > 高级应用 >

.NET4.5 Console.ReadKey()在多线程下的BUG

时间:2013-08-22 14:41来源:未知 作者:admin 点击:我要投稿  高质量的ASP.NET空间,完美支持1.0/2.0/3.5/4.0/MVC等

.NET 4.5 在多线程的控制台里,Console.ReadKey()可能会造成线程死锁。看代码:

 
static void Main(string[] args)
{
     System.Timers.Timer timer = new System.Timers.Timer(1000);
     timer.Elapsed += timer_Elapsed;
     timer.Enabled = true;

     Console.ReadKey();// 使用Console.ReadLine() ;工作正常
}

static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
     Console.WriteLine("Hello World");
}
 

"Hello World"无法正常输出到控制台中。但使用Console.ReadLine()没有此问题。

原因:http://blogs.microsoft.co.il/blogs/dorony/archive/2012/09/12/console-readkey-net-4-5-changes-may-deadlock-your-system.aspx

补丁:http://support.microsoft.com/kb/2805221/en-us

本站推荐文章:
本站热点文章:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色 情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片