如何使用C#读写锁ReaderWriterLockSlim

2019-12-26 13:08:45于海丽
  • }  static public void ReadSomething() 
  • {  Console.WriteLine("{0} Thread ID {1} Begin EnterReadLock...", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode()); 
  • rwl.EnterReadLock();  try 
  • {  Console.WriteLine("{0} Thread ID {1} reading sth...", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode()); 
  • Thread.Sleep(5000);//模拟读取信息  Console.WriteLine("{0} Thread ID {1} reading end.", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode()); 
  • }  finally 
  • {  rwl.ExitReadLock(); 
  • Console.WriteLine("{0} Thread ID {1} ExitReadLock...", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode());  } 
  • }  static public void WriteSomething() 
  • {  Console.WriteLine("{0} Thread ID {1} Begin EnterWriteLock...", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode()); 
  • rwl.EnterWriteLock();  try 
  • {  Console.WriteLine("{0} Thread ID {1} writing sth...", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode()); 
  • Thread.Sleep(10000);//模拟写入信息  Console.WriteLine("{0} Thread ID {1} writing end.", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode()); 
  • }  finally 
  • {  rwl.ExitWriteLock(); 
  • Console.WriteLine("{0} Thread ID {1} ExitWriteLock...", DateTime.Now.ToString("hh:mm:ss fff"), Thread.CurrentThread.GetHashCode());  } 
  • }  }