2012-08-26 67 views
0

這就是這種情況。我有一個創建2個子線程的應用程序。當我調用ChildThread1的Join方法時,MainThread等待這個聯接操作。它凍結。但這不是重點。預計。 重點是ChildThread2在這個操作中的影響。它是否等待此操作或正常運行? 謝謝。C#Thread.Join影響其他線程

+1

當你嘗試過時發生了什麼? – dtb

+0

我現在正在嘗試 – ozancan

回答

2

ChildThread2不受影響。

現在,如果它是一個後臺線程,如果JoinMain確實在退出之前,那會殺ChildThread2的最後一件事,但是這無關與Join本身,而是與事實一旦所有非後臺線程完成,應用程序就會關閉,從而終止所有後臺線程。

如果它不是後臺線程,則不適用 - 主線程退出(在ChildThread1之後,因爲Join表示它等待它),然後第二個衍生線程結束,否則第二個線程派生線程已經完成,並且當它們全部完成時,應用程序結束。

請注意,如果您嘗試Join已完成的線程,將立即返回Join的呼叫。因此,如果你想要一個線程在兩個或更多的線程上等待,並且不能預測它們的順序,那麼等待一個然後另一個是完全可以的。

1

ChildThread2將繼續執行,直到完成或中止。

+0

感謝您的回答。它的行爲如你所說 – ozancan