Нужно задать справедливое распределение доступа и читателям и писателям.
Не могу понять, что не так в моем варианте.
using System;
using System.Threading;
namespace rw_ReaderWriterLockSlim
{
class Program
{
static ReaderWriterLockSlim rwLockSlim = new ReaderWriterLockSlim();
static bool one = true;
static int n = 0;
public static void Count(object obj)
{
one = false;
}
public static void WriterFunction()
{
while (one)
{
rwLockSlim.EnterReadLock();
Console.WriteLine(Thread.CurrentThread.Name);
n++;
rwLockSlim.ExitReadLock();
}
rwLockSlim.EnterWriteLock();
}
public static void ReaderFunction()
{
while (one)
{
rwLockSlim.EnterWriteLock();
Console.WriteLine(Thread.CurrentThread.Name);
n++;
rwLockSlim.ExitWriteLock();
}
rwLockSlim.EnterReadLock();
}
static void Main()
{
for (int i = 0; i < 64; i++)
{
Thread myThread = new Thread(ReaderFunction);
myThread.Name = i.ToString() + "й ПРОЧИТАЛ";
myThread.Start();
}
for (int i = 0; i < 4; i++)
{
Thread myThread = new Thread(WriterFunction);
myThread.Name = i.ToString() + "й записал";
myThread.Start();
}
Timer timer = new Timer(Count, null, 1000, 1000);
Console.ReadLine();
Console.WriteLine(n);
Console.ReadLine();
}
}
}