Почему происходит блокировка потоков в приведенном коде - C#
Формулировка задачи:
Здравствуйте. Есть метод run. Создаются и запускаются 2 потока для вызова этого метода. По моему разумению потоки дойдя до первой 1000 должны были синхронизироваться и выводить каждый по следующей тысяче блокирую друг друга на время вывода. Однако этого не происходит, второй поток досчитав до 1000 блокируется, а первый не включается. Может кто объяснить?
void run()
{
count=0;
do
{
lock(this)
{
count++;
Console.WriteLine(count);
if(count%1000=0)
{
Monitor.Pulse(this);
Monitor.Wait(this)
}
}
}
while (count<10000)
}Решение задачи: «Почему происходит блокировка потоков в приведенном коде»
textual
Листинг программы
if(count%1000=0)