程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#使用Thread.Sleep()導致程序無響應的解決辦法

C#使用Thread.Sleep()導致程序無響應的解決辦法

編輯:關於C#
 

有時候我們在編寫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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved