Пример многопоточности из Шилтда работает как то не так - C#
Формулировка задачи:
Добрый день!
Изучаю многопоточность по книге Шилтда.
Переписал пример из книги, он работает. Но результат отличается от того, который указан в книге. (см. скриншот).
Отличие в количестве точек.
Почему так?
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("Основной лоток начат."); // Сначала сконструировать объект типа MyThread. MyThread mt = new MyThread("Потомок #1"); do { Console.Write("."); Thread.Sleep(100); } while (mt.Count != 10); Console.WriteLine("Основной поток завершен."); Console.ReadLine(); } } class MyThread { public int Count; public Thread Thrd; public MyThread(string name) { Count = 0; Thrd = new Thread(this.Run); Thrd.Name = name; // задать имя потока Thrd.Start(); // начать поток } // Точка входа в поток, void Run() { Console.WriteLine(Thrd.Name + " начат."); do { Thread.Sleep(500); Console.WriteLine("В потоке " + Thrd.Name + " Count = " + Count); Count++; } while (Count < 10); Console.WriteLine(Thrd.Name + " завершен."); } } }
Решение задачи: «Пример многопоточности из Шилтда работает как то не так»
textual
Листинг программы
public MyThread(string name) { Count = 0; Thrd = new Thread(this.Run); Thrd.Priority = ThreadPriority.Lowest; Thrd.Name = name; // задать имя потока Thrd.Start(); // начать поток }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д