任务列表-开始然后等待

我想用List做第一种方法处理数组的方法。


情况是不知道前面有多少个任务。我不想在开始任务之前填写列表,因为要花一些时间来填写列表。


public void TaskArray()

{

    ConcurrentBag<int> cb = new ConcurrentBag<int>();

    Task[] taskArray = new Task[10];

    for (int i = 0; i < 100; i++)

    {

        taskArray[i] = Task.Factory.StartNew((Object obj) => {


            Console.WriteLine("Task #{0} created at {1} on thread #{2}.",

                                i, Thread.CurrentThread.ManagedThreadId);

        },

                                                i);

    }

    Task.WaitAll(taskArray);

}

这有语法错误。无法从system.generic.task.list转换为system.threading.task.task


public void TaskList()

{

    ConcurrentBag<int> cb = new ConcurrentBag<int>();

    List<Task> taskArray = new List<Task>;

    for (int i = 0; i < 100; i++)

    {

        taskArray.Add(Task.Factory.StartNew((Object obj) => {

            cb.Add(i);

            Console.WriteLine("Task #{0} created at {1} on thread #{2}.",

                                i, Thread.CurrentThread.ManagedThreadId);

        },

                                                i));

    }

    Task.WaitAll(taskArray);

}


jeck猫
浏览 132回答 1
1回答

皈依舞

假设taskArray是List<Task>你可能只需要使用:Task.WaitAll(taskArray.ToArray());
打开App,查看更多内容
随时随地看视频慕课网APP