Создание потоков в цикле - C#
Формулировка задачи:
Помогите пожалуйста разобраться в следующей ситуации:
Создаю в цикле 10 потоков от 0 до 9
Вывожу в каждом потоке цифры от 0 до 9
Если потоки создавать без задержки, то некоторые потоки просто не создаются, а то и вовсе появляется 10ый поток О_о.
Если после запуска каждого потока сделать задержку хоть 10мсек, то все потоки создаются и отрабатывают как надо.
Код:
using System; using System.Collections.Generic; using System.Threading; namespace ConsoleApplication18 { class Select { static void RWDeviceState(int ind) { for (int i = 0; i < 10; i++) { Console.WriteLine("Поток:" + ind+" Значение:"+i); } } static void Main(string[] args) { List<Thread> ThrArr = new List<Thread>(); for (int ind = 0; ind < 10; ind++) { Thread devthread = new Thread(() => RWDeviceState(ind)); devthread.Name = "thr" + ind.ToString(); ThrArr.Add(devthread); devthread.Start(); //Thread.Sleep(10); } Console.ReadKey(); } } }
Решение задачи: «Создание потоков в цикле»
textual
Листинг программы
int temp = ind; Thread devthread = new Thread(() => RWDeviceState(temp));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д