Nito.AsyncEx.AsyncLazy<T>
Provides support for asynchronous lazy initialization. This type is fully threadsafe.
namespace Nito.AsyncEx
{
public sealed class AsyncLazy<T>
{
public int Id { get; }
public bool IsStarted { get; }
public Task<T> Task { get; }
public AsyncLazy(Func<Task<T>> factory, AsyncLazyFlags flags = AsyncLazyFlags.None);
public TaskAwaiter<T> GetAwaiter();
public ConfiguredTaskAwaitable<T> ConfigureAwait(bool continueOnCapturedContext);
public void Start();
}
}