class Program
{
static void Main(string[] args)
{
ParameterizedThreadStart aStart = new ParameterizedThreadStart(Addition);
Thread aThread = new Thread(aStart);
Data aData = new Data();
aData.X = 10;
aData.Y = 20;
aThread.Start(aData);
aThread.Join();
Console.WriteLine("End of the program");
}
static void Addition(object data)
{
var a = data as Data;
var b = a.X + a.Y;
a.result = b;
Console.WriteLine(a.result);
Thread.Sleep(1000);
Console.WriteLine("End of thread");
}
}
我寫了一個例子來理解Join方法(); 任何人都可以解釋它是如何工作的?睡眠和加入之間有什麼區別()線程加入方法
@ Ernest:按照msdn:Thread join method()方法:阻塞調用線程,直到線程終止。調用線程是什麼意思,調用線程是如何知道線程被終止的? – Raghaav
「調用線程」是調用「加入」的那個線程。即使您沒有明確創建任何代碼,所有代碼都會在線程中執行;爲此,'Main'運行在由運行時創建的線程中。至於調用線程如何知道另一個線程已經退出:這是底層線程庫的原始功能。我從來沒有看過C#實現,但在許多線程庫中,有一個線程在退出時會發出信號的信號量。 '加入'然後只需等信號燈,直到通知。 –