Почему происходит блокировка потоков в приведенном коде - 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)

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы