.NET 4.x Динамическое создание потоков, и ожидание их окончания - C#
Формулировка задачи:
И так! У меня такая проблема возникла.
Хочется чтобы программа работала в многопоточном режиме.
Потоки мне нужно создавать в одном месте. Это цикл.
Мне нужно чтобы после создания цикла for, было ожидание окончания работы всех потоков.
Как это реализовать?
for(блаблабла) { new Thread(() => { блаблабла }).Start(); }
Решение задачи: «.NET 4.x Динамическое создание потоков, и ожидание их окончания»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication2 { class Program { static Random r = new Random(); static void Main(string[] args) { int taskCount = 5; Task[] tasks = new Task[taskCount]; for (int i = 0; i < taskCount; i++) { int id = i; tasks[i] = new Task(() => { TaskMethod(id); }); } Task endedTask = Task.Factory.ContinueWhenAll(tasks, (e) => { Console.WriteLine("All tasks completed!"); }); foreach (Task t in tasks) { t.Start(); } Console.ReadLine(); } static void TaskMethod(int taskId) { Console.WriteLine("Task {0} started!", taskId); Thread.Sleep(r.Next(3000,6000)); Console.WriteLine("Task {0} completed!", taskId); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д