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秒
        }

猜你喜欢

转载自www.cnblogs.com/subendong/p/11776100.html