public void CanBeUsedWithTheUsingCSharpIdiomToAcquireAnIsync()
 {
     Assert.Throws <ThreadStateException>(
         delegate
     {
         using (new SyncHolder(sync))
         {
             throw new ThreadStateException();
         }
     });
     sync.AssertWasCalled(s => s.Acquire());
     sync.AssertWasCalled(s => s.Release());
 }