public virtual async Task <IAsyncDisposable> AcquireDistributedProcessingMutexAsync() { var distributedMutex = await SqlTransaction.AcquireAppLockAsync( DistributedMutexLockName, DistributedMutexAcquisitionTimeoutSeconds, throwsException : false ); //Safely return null if the Lock was not successfully acquired. return(distributedMutex.IsLockAcquired ? distributedMutex : null); }