public async Task Invalidate() { await _syncLock.WaitAsync().ConfigureAwait(false); _value = default; _syncLock.Release(); }
public T Value() { if (IsValueCreatedInternal) { return(_value.Result); } _value = _valueProvider(_value); return(_value.Result); }
public async Task <T> Value() { await _syncLock.WaitAsync().ConfigureAwait(false); try { if (IsValueCreatedInternal) { return(_value.Result); } _value = await _valueProvider(_value).ConfigureAwait(false); return(_value.Result); } finally { _syncLock.Release(); } }
public void Invalidate() { _value = default; }