Я хочу сделать с 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);
}