c# 大白話告訴你Thread的Sleep和Join的區別


我們的程序默認會有兩個線程,一個是主線程,一個是負責垃圾回收的線程。如果代碼不使用多線程,就只有主線程這一條干道。
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秒
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM