Создание потоков в цикле - 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));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д