| Overload | Description | 
|---|---|
| WithLock(Action) | Acquires a lock with GetLock, calls the specified delegate and then calls ReleaseLock. | 
| WithLock<TResult>(Func<TResult>) | Calls GetLock(), runs the specified Func, calls ReleaseLock() and then returns the value returned by the Func. |