Создание потоков в цикле - 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));