我們的程序默認會有兩個線程,一個是主線程,一個是負責垃圾回收的線程。如果代碼不使用多線程,就只有主線程這一條干道。
1.在主線程中調用Thread.Sleep(1000),表示主線程阻塞自己1秒。
2.在主線程中使用子線程調用Join()方法,表示子線程告訴主線程你需要阻塞一會,直到我完成任務。
兩者雖然都是阻塞主線程,但是,一個是主線程自己阻塞自己,另一個是子線程阻塞主線程。
private void Test() { Thread.Sleep(1000);//此處主線程阻塞1秒 var thread = new Thread(new ThreadStart(() => { //模擬執行3秒 })); thread.Start(); thread.Join();//此處主線程阻塞3秒 }
