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