| 1234567891011121314151617181920212223242526272829303132333435 |
- using System;
- using System.Threading;
- namespace Base
- {
- public class TryLock : IDisposable
- {
- private object locked;
- public bool HasLock { get; private set; }
- public TryLock(object obj)
- {
- if (!Monitor.TryEnter(obj))
- {
- return;
- }
- this.HasLock = true;
- this.locked = obj;
- }
- public void Dispose()
- {
- if (!this.HasLock)
- {
- return;
- }
- Monitor.Exit(this.locked);
- this.locked = null;
- this.HasLock = false;
- }
- }
- }
|