private void SharedWorker()
 {
     try
     {
         startEvent.Wait();
         for (int j = 0; j < iterations; j++)
         {
             if (errorToken.Token.IsCancellationRequested)
             {
                 return;
             }
             Guid id = Guid.NewGuid();
             idLock.EnterShared(id);
             SetProtectedValue();
             idLock.ExitShared(id);
         }
     }
     catch
     {
         errorToken.Cancel();
     }
 }
        public void EnterShared()
        {
            var id = Guid.NewGuid();

            idLock.EnterShared(id);
            Assert.IsTrue(idLock.SharedLockTakenBy(id));
        }