首页 > 代码库 > Thread.Join() 方法

Thread.Join() 方法

 

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() 方法