每天学习一小例:C#使用Thread.Sleep()导致程序无响应的解决办法-网络教程与技术 -亦是美网络

亦是美网络

致力于操作系统应用与计算机网络技术的IT网站。

站内搜索


最新文章

推荐文章

每天学习一小例:C#使用Thread.Sleep()导致程序无响应的解决办法

有时候我们在编写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;命名空间。

上一篇:新手学习网站建设入门 学习网站建设的五个基本细节
下一篇:两种方案教你重装系统前如何备份QQ聊天记录等重要信息

亦是美网络,成立于2012年12月5日,是一个致力于操作系统应用与计算机网络技术的综合IT网站,为大家不断提供和推荐有用的网络教程与技术。

本站文章归<亦是美网络 www.yishimei.cn>版权所有 网站地图 联系我们 豫ICP备12013471号-4 豫公网安备41078202000395号