[C#.NET][Thread] 執行緒的順序啟動 - Thread.Join方法

[C#.NET][Thread] Thread.Join方法的使用

Join語意是加入,但跟官網的解釋不太一樣,Thread.Join 方法在官網的解釋是:封鎖呼叫執行緒,直到執行緒結束為止。

沒錯!在這裡它是封鎖的意思,那是封鎖什麼呢?做啥用途的呢?它是用來做順序控制用的;這樣講好了,假設你現在有兩條執行緒名叫a、b要將它做順序啟動,當a工作完成之後才叫b工作,這時就可以用Thread.Join方法;查了一下網路也有人叫它合併,但總覺得不太合適,總之見人見智,小弟不玩文字遊戲,對我而言它就是可以用來做順序啟動。

我們來觀察下列程式碼,程式碼出自http://msdn.microsoft.com/zh-tw/library/system.threading.thread.aspx

image

 

當主程式(執行緒a)使用了Join方法後,會等到ThreadProc方法(執行緒b)的工作完成才會再往下一行 Console.WriteLine("Main thread: ThreadProc.Join has returned.  Press Enter to end program.") 執行。

image

 

 

由此一來,Join的功能就如同msdn上解釋的相同了。

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo