Class TryLockTryDo
Execute something if a condition is met, but do it within a lock to avoid duplicate runs
[InternalApi_DoNotUse_MayChangeWithoutNotice]
public class TryLockTryDo
  - Inheritance
 - 
      objectTryLockTryDo
 
Constructors
TryLockTryDo(object?)
Execute something if a condition is met, but do it within a lock to avoid duplicate runs
public TryLockTryDo(object? lockObject = null)
  Parameters
lockObjectobject
Fields
LockCount
public int LockCount
  Field Value
PreLockCount
public int PreLockCount
  Field Value
Methods
Call<TResult>(Func<bool>, Func<TResult>, Func<TResult>)
Get / Generate a value inside a lock with double-check.
public (TResult Result, bool Generated, string Message) Call<TResult>(Func<bool> conditionToGenerate, Func<TResult> generator, Func<TResult> cacheOrFallback)
  Parameters
conditionToGenerateFunc<bool>Function to call checking if we need to generate the result
generatorFunc<TResult>the generator
cacheOrFallbackFunc<TResult>fallback to provide if no loading should happen - typically a previously cached result or default data
Returns
Type Parameters
TResult
Do(Func<bool>, Action)
public void Do(Func<bool> condition, Action action)