c#Thread多线程-2
using System;
using System.Threading;
class Program
{
static void Main()
{
// 执行顺序 1:创建线程,传入参数
Thread t = new Thread(PrintMsg);
// 执行顺序 2:启动线程,并把 "我是参数" 传给子线程
t.Start("我是参数");
Console.WriteLine("主线程运行");
}
// 子线程方法(必须用 object 接收参数)
static void PrintMsg(object obj)
{
// 执行顺序 3:拿到参数并打印
Console.WriteLine("子线程收到:" + obj);
}
}
线程等待(Join)让主线程等子线程
using System;
using System.Threading;
class Program
{
static void Main()
{
Console.WriteLine("主线程开始"); // 顺序1
Thread t = new Thread(Run);
t.Start(); // 顺序2:启动子线程
t.Join(); // 顺序3:主线程【等待】子线程跑完
Console.WriteLine("主线程结束"); // 顺序5(等子线程结束才执行)
}
static void Run()
{
Console.WriteLine("子线程开始"); // 顺序4
Thread.Sleep(1000);
Console.WriteLine("子线程结束");
}
}
using System;
using System.Threading;
class Program
{
static void Main()
{
// 顺序1:创建3个线程
Thread t1 = new Thread(Work1);
Thread t2 = new Thread(Work2);
Thread t3 = new Thread(Work3);
// 顺序2:同时启动3个线程
t1.Start();
t2.Start();
t3.Start();
}
static void Work1() { Console.WriteLine("线程1运行"); }
static void Work2() { Console.WriteLine("线程2运行"); }
static void Work3() { Console.WriteLine("线程3运行"); }
}
执行顺序
3 个线程谁先抢到 CPU 谁先跑,顺序不固定,但同时执行。

浙公网安备 33010602011771号