码迷,mamicode.com
首页 > Windows程序 > 详细

c# 大白话告诉你Thread的Sleep和Join的区别

时间:2019-11-01 13:08:12      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:join()   tar   col   方法   void   class   垃圾   使用   pre   

我们的程序默认会有两个线程,一个是主线程,一个是负责垃圾回收的线程。如果代码不使用多线程,就只有主线程这一条干道。
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秒
        }

 

c# 大白话告诉你Thread的Sleep和Join的区别

标签:join()   tar   col   方法   void   class   垃圾   使用   pre   

原文地址:https://www.cnblogs.com/subendong/p/11776100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!