码迷,mamicode.com
首页 > 其他好文 > 详细

Thread.Join() 方法

时间:2017-05-14 22:21:03      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:main   int   span   des   msdn   进程   calling   pos   linq   

 

1. 什么是 the calling thread?

2. 什么是 a thread?

 

运行一个程序,即开启了一个进程和至少一个线程,干活的是线程而非进程!the calling thread 我们可以认为是MainThread(或者调用线程的线程,是不是有点绕?呵呵),a thread 我们就认为是被调用的线程。

 

最后,我们可以这样翻译MSDN:当 a thread 调用Join方法的时候,MainThread 就被停止执行,直到 a thread 线程执行完毕。

 

下面是测试代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace Test
{
    class TestThread
    {
        private static void ThreadFuncOne()
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(Thread.CurrentThread.Name +"   i =  " + i);
            }
            Console.WriteLine(Thread.CurrentThread.Name + " has finished");
        }
 
        static void Main(string[] args)
        {
            Thread.CurrentThread.Name = "MainThread";
 
            Thread newThread = new Thread(new ThreadStart(TestThread.ThreadFuncOne));
            newThread.Name = "NewThread";
 
            for (int j = 0; j < 20; j++)
            {
                if (j == 10)
                {
                    newThread.Start();
                    newThread.Join();
                }
                else
                {
                    Console.WriteLine(Thread.CurrentThread.Name + "   j =  " + j);
                }
            }
            Console.Read();
        }
    }
}
 

 

技术分享

 

结论:

MainThread 在 NewThread.Join() 被调用后被阻塞,直到 NewThread 执行完毕才继续执行。

Thread.Join() 方法

标签:main   int   span   des   msdn   进程   calling   pos   linq   

原文地址:http://www.cnblogs.com/YzpJason/p/6852794.html

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