Как мне вызвать несколько потоков с методом, чтобы статическое поле не менялось? - C#

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

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

Не знак как назвать, собственно к сути. Сильно упростил код для того чтобы было проще. Есть класс в нем есть публичные переменные как мне вызвать несколько потоков с функцией StartThread чтобы numb не изменялся. В итоге я должен каждую секунду записывать в Globals.rich "Я поток 1" и "Я поток 2".
class Class
    {
        private static int numb;
 
        internal Class(int number)
        {
            numb = number;
        }
 
        public void StartThread()
        {
            while (true)
            {
                Globals.rich += "Я поток " + numb + Environment.NewLine;
                Thread.Sleep(1000);
            }
        }
    }

Решение задачи: «Как мне вызвать несколько потоков с методом, чтобы статическое поле не менялось?»

textual
Листинг программы
using System;
using System.Threading;
 
namespace ConsoleApplication11
{
    class Program
    {
        static void Main()
        {
            for (int i = 0; i < 100; i++)
            {
                ThreadPool.QueueUserWorkItem(state =>
                                             {
                                                 var x = new Class(Thread.CurrentThread.ManagedThreadId);
                                                 x.SomeEvent += (sender, s) => Console.Write(s);
                                                 x.StartThread();
                                             });
            }
            Thread.Sleep(100000);
        }
    }
 
    class Class
    {
        [ThreadStatic]
        private static int numb;
 
        public event EventHandler<string> SomeEvent = delegate { };
 
        internal Class(int number)
        {
            numb = number;
        }
 
        public void StartThread()
        {
            while (true)
            {
                SomeEvent(this, "Я поток " + numb + Environment.NewLine);
                Thread.Sleep(1000);
            }
        }
    }
}

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


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

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

15   голосов , оценка 3.667 из 5
Похожие ответы