public void Run() { while (true) { lock (ReaderWriter.LR){ ReaderWriter.ReadCount++; Console.WriteLine($"Read count: {ReaderWriter.ReadCount}"); } Console.WriteLine($"Read: {ReaderWriter.Data}"); Console.WriteLine($"Reader working..."); Thread.Sleep(10000); lock (ReaderWriter.LR){ ReaderWriter.ReadCount--; Console.WriteLine($"Read count: {ReaderWriter.ReadCount}"); ReaderWriter.NotifyLR(); } var rand = new Random(); var secs = rand.Next(1, 5); Console.WriteLine($"Reader sleeping {secs} seconds..."); Thread.Sleep(secs * 1000); } }