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  阅读(96)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示