.NET 4.x Динамическое создание потоков, и ожидание их окончания - C#

Узнай цену своей работы

Формулировка задачи:

И так! У меня такая проблема возникла. Хочется чтобы программа работала в многопоточном режиме. Потоки мне нужно создавать в одном месте. Это цикл.
Листинг программы
  1. for(блаблабла)
  2. {
  3. new Thread(() => { блаблабла }).Start();
  4. }
Мне нужно чтобы после создания цикла for, было ожидание окончания работы всех потоков. Как это реализовать?

Решение задачи: «.NET 4.x Динамическое создание потоков, и ожидание их окончания»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8.  
  9. namespace ConsoleApplication2 {
  10.     class Program {
  11.         static Random r = new Random();
  12.         static void Main(string[] args) {
  13.             int taskCount = 5;
  14.             Task[] tasks = new Task[taskCount];
  15.             for (int i = 0; i < taskCount; i++) {
  16.                 int id = i;
  17.                 tasks[i] = new Task(() => { TaskMethod(id); });
  18.             }
  19.             Task endedTask = Task.Factory.ContinueWhenAll(tasks, (e) => {
  20.                 Console.WriteLine("All tasks completed!");
  21.             });
  22.             foreach (Task t in tasks) {
  23.                 t.Start();
  24.             }
  25.             Console.ReadLine();
  26.         }
  27.         static void TaskMethod(int taskId) {
  28.             Console.WriteLine("Task {0} started!", taskId);
  29.             Thread.Sleep(r.Next(3000,6000));
  30.             Console.WriteLine("Task {0} completed!", taskId);
  31.         }
  32.     }
  33. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы