有時候我們在編寫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;命名空間。