使用Join完成线程阻塞
1.创建一个方法PrintNumbersWithDelay,打印1~10的整数,方法中调用Sleep方法,使其每打印一次,线程停止两秒。
2.创建一个PrintNumbers方法,打印1~10的整数。
3.在主程序中启动两个线程,执行上面两个方法。让第一个线程启动阻塞,组织其他线程执行。并测试执行效果。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args) //3.在主程序中启动两个线程,执行上面两个方法。让第一个线程启动阻塞,组织其他线程执行。并测试执行效果。
{
Thread t = new Thread(new ThreadStart(PrintNumbersWithDelay));
t.Start();
t.Join(); //使用Join完成线程阻塞
Thread h = new Thread(new ThreadStart(PrintNumbers));
h.Start();
}
static void PrintNumbersWithDelay() //1.创建一个方法PrintNumbersWithDelay,打印1 ~10的整数,方法中调用Sleep方法,使其每打印一次,线程停止两秒。
{
Console.WriteLine("Starting1...");
for (int i = 1; i <= 10; i++)
{
Console.WriteLine("第1个线程:{0}", i);
Thread.Sleep(2000);
}
}
static void PrintNumbers() //2.创建一个PrintNumbers方法,打印1 ~10的整数。
{
Console.WriteLine("Starting2...");
for (int i = 1; i <= 10; i++)
{
Console.WriteLine("第2个线程:{0}", i);
}
}
}
}
运行结果: