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

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


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

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

10   голосов , оценка 4.1 из 5