C# 多线程(2)
Thread类中的join方法:
微软官方解释:Join 一个同步方法,该方法阻止调用线程 (即,调用方法的线程) ,直到 Join 调用方法的线程完成。 使用此方法可以确保线程已终止。
using System; using System.Threading; namespace _20210115线程 { class Program { static void Main(string[] args) { Console.WriteLine("主线程线程ID为:" + Thread.GetCurrentProcessorId()); Thread thread = new Thread(new ParameterizedThreadStart(StartCode)); thread.Start("Hello"); //thread.Join(); for (int i = 0; i < 10; i++) { Thread.Sleep(100); Console.WriteLine("主线程中循环{0}", i); } Console.WriteLine("主线程调用完毕。"); Console.ReadKey(); } public static void StartCode(object o) { Console.WriteLine("StartCode方法开始。"); Console.WriteLine("方法线程ID为:" + Thread.GetCurrentProcessorId()); Console.WriteLine("StartCode方法输入的参数o是:{0}", o); for (int i = 0; i < 10; i++) { Thread.Sleep(100); Console.WriteLine("StartCode方法中循环{0}", i); } Console.WriteLine("StartCode方法结束。"); } } }
thread.Join();
这句注释掉时结果如下:
加上这句后结果如下:在StartCode这个函数的线程执行时主线程(main)是阻塞的,方法线程结束后主线程继续执行。