C#多线程Thread
本文以winform作为案例
private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine($"button1_Click start id为{Thread.CurrentThread.ManagedThreadId.ToString("00")}***********");
Thread t1 = new Thread(doSomething);
Thread t2 = new Thread(doSomething);
Thread t3 = new Thread(doSomething);//doSomething是一个极其耗cpu资源的计算方法。
t1.Name = "t1";
t2.Name = "t2";
t3.Name = "t3";
t1.Start(t1);
t2.Start(t2);
t3.Start(t3);
//此处,开启多线程3个,来执行action
t1.join();//阻塞主线程,直到t1线程执行完毕,下方代码才会执行(在此期间,窗体页面是无法拖动的,因为主线程处于等待中。)。
//需要注意的是:由于多线程具有无序性,所以此处三个线程的执行顺序,会通过clr请求操作系统来处理,所以每次点击后,顺序也不尽相同
Debug.WriteLine($"button1_Click end id为{Thread.CurrentThread.ManagedThreadId.ToString("00")}***********");
}