Task是.NetFramework3.0出现的,线程是基于线程池,然后提供了丰富的API

TaskFactory  提供对创建和计划 Task 对象的支持

创建和启动异步任务

1、Task task = new Task(() => ThreadPoolHelper.DoSomeThing());
      task.Start();

2、Task task = Task.Run(() => ThreadPoolHelper.DoSomeThing());

3、TaskFactory taskFactory = Task.Factory;

      Task task = taskFactory.StartNew(() => ThreadPoolHelper.DoSomeThing());

Task的线程是源于线程池 ,假如说我想控制下Task的并发数量,该怎么做?

 1             {
 2                 //ThreadPool.SetMaxThreads(8, 8);
 3                 //线程池是单例的,全局唯一的
 4                 //设置后,同时并发的Task只有8个;而且线程是复用的;
 5                 //全局的,请不要这样设置!!!
 6                 for (int i = 0; i < 100; i++)
 7                 {
 8                     int k = i;
 9                     Task.Run(() =>
10                     {
11                         Console.WriteLine($"This is k={k},i={i} running ThreadId={Thread.CurrentThread.ManagedThreadId.ToString("00")}");
12                         Thread.Sleep(2000);
13                     });
14                 }
15             }
View Code

相关文章:

  • 2021-11-04
  • 2021-12-11
  • 2021-12-31
  • 2022-12-23
  • 2021-07-05
  • 2021-11-04
  • 2021-07-07
猜你喜欢
  • 2022-12-23
  • 2021-04-28
  • 2022-12-23
  • 2022-12-23
  • 2021-05-08
  • 2021-09-11
  • 2021-10-12
相关资源
相似解决方案