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