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

五,List Task


List<Task> tasks = new List<Task>();
tasks.add(task1);
tasks.add(task1);
await Task.WhenAll(tasks);
private async Task task1()
{
    await Task.Run(() =>
    {
      Thread.Sleep(1000);
     Console.WriteLine($"异步线程执行异");

    });

}

 

posted @ 2022-02-24 11:53  普天2022  阅读(94)  评论(0编辑  收藏  举报