Пример многопоточности из Шилтда работает как то не так - 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(); // начать поток
}