【问题标题】:How to initialize List with Task objects如何使用任务对象初始化列表
【发布时间】:2010-12-30 23:28:39
【问题描述】:

如何使用 C# 和 .NET 4.0 使用任务对象 (TPL) 初始化列表?

【问题讨论】:

    标签: c# .net .net-4.0 parallel-processing task-parallel-library


    【解决方案1】:

    你的意思是:

            // Create tasks
            List<Task> tasks = new List<Task>()
            {
                new Task(() => Console.WriteLine("A")),
                new Task(() => Console.WriteLine("B"))
            };
    
            // Start them later
            tasks.ForEach(a => a.Start());
    

    或者,如果您愿意,可以按照 Chad 向您展示的那样在创建时启动它们(调用 Task.Factory.StartNew(Action)

    【讨论】:

      【解决方案2】:

      你的意思是:

      var tasks = new List<Task>();
      
      var task = Task.Factory.StartNew(() => {
           //do work
      });
      tasks.Add(task);
      

      【讨论】:

      • 我也想定义包含一些动作的任务
      • 你能像 List(){() => new action(//somework)} 或类似的那样在一行中做到这一点
      • 但这会启动任务然后添加它。我认为 OP 想要的是将任务添加到列表以稍后开始。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      相关资源
      最近更新 更多