WriteLockDisposable.cs 966 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. namespace GreenTree.Nachtragsmanagement.Core.ComponentModel
  8. {
  9. /// <summary>
  10. /// Provides a convenience methodology for implementing locked access to resources.
  11. /// </summary>
  12. /// <remarks>
  13. /// Intended as an infrastructure class.
  14. /// </remarks>
  15. public class WriteLockDisposable : IDisposable
  16. {
  17. private readonly ReaderWriterLockSlim _rwLock;
  18. /// <summary>
  19. /// Initializes a new instance of the <see cref="WriteLockDisposable"/> class.
  20. /// </summary>
  21. /// <param name="rwLock">The rw lock.</param>
  22. public WriteLockDisposable(ReaderWriterLockSlim rwLock)
  23. {
  24. _rwLock = rwLock;
  25. _rwLock.EnterWriteLock();
  26. }
  27. void IDisposable.Dispose()
  28. {
  29. _rwLock.ExitWriteLock();
  30. }
  31. }
  32. }