| Overload | Description | 
|---|---|
| WithLock(Action) | Calls GetLock(), runs the specified Action 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. |