Exemplo n.º 1
0
            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);
                }
            }