C#多线程方式


一,Thread

Thread默认开启前台线程。 其他的开启方式默认开启后台线程。

//通过ParameterizedThreadStart创建线程
Thread thread = new Thread((obj) =>
{
Console.WriteLine(obj);
});
//给方法传值
thread.Start("这是一个有参数的委托");

二,线程池

ThreadPool.QueueUserWorkItem((obj) =>
{
Console.WriteLine("123456");
});

三,Task 开启

var task1=Task.Factory.StartNew(()=>
{
  Console.WriteLine("111");
});

Task task2 = new Task(()=>
{
  Console.WriteLine("222");
});
Task task3 = task2.ContinueWith((o) => // 完成时异步执行的延续任务
{
  Console.WriteLine("333"); // 开启任务 task2, 当task2执行完毕的时候,会执行task3的任务
});
task2.Start();

四,后台线程

BackgroundWorker
C