返回首页
当前位置: 主页 > 编程语言 > C#教程 >

C#使用Thread.Sleep()导致程序无响应的解决办法

时间:2014-10-08 21:32来源:电脑教程学习网 www.etwiki.cn 编辑:admin

有时候我们在编写C#程序时需要某个线程睡眠一段时间,一般情况下,我们首先会想到用Thread.Sleep()方法,但是有时候用这个方法的时候会导致程序出现无响应的状况,那有没有其他办法来替代这个方法呢?答案是肯定的,下面亦是美网络就给大家介绍一下Thread.CurrentThread.Join()方法。

首先我们来看一下msdn帮助文档是如何介绍的:

Thread.Sleep(); //将当前线程挂起指定的时间。

Thread.CurrentThread.Join(); //在继续执行标准的 COM 和 SendMessage 消息泵处理期间,阻塞调用线程,直到某个线程终止为止。

如果仅仅从字面上理解的话,Thread.Sleep();只是将线程挂起,即使当前线程没终止,还可以继续被调用。而Thread.CurrentThread.Join()方法不仅阻塞调用线程,并且还必须等到该线程终止。

这样的话,使用Thread.Sleep();有时就会导致程序出现无响应的情况,而使用Thread.CurrentThread.Join()程序将不会出现无响应,但是其他操作需要等待当前线程终止才会继续。

PS:要使用Thread类,需调用using System.Threading;命名空间。

顶一下
(1)
20%
踩一下
(4)
80%
标签(Tag):c# c#技巧 c#实例教程 c#源代码 c#基础教程
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容