DotNext by Roman Sakno

<PackageReference Include="DotNext" Version="2.3.0" />

 Future

public abstract class Future : IFuture, INotifyCompletion
Represents lightweight version of Task.
public interface IAwaiter : IFuture, INotifyCompletion

Represents awaiter of the asynchronous computation result represented by future object.

public interface IAwaiter<R> : IFuture, INotifyCompletion

Represents awaiter of the asynchronous computation result represented by future object.

Represents exception indicating that the result is requested from incompleted Future object.

public abstract bool IsCompleted { get; }

Determines whether asynchronous operation referenced by this object is already completed.

protected Future(bool runContinuationsAsynchronously = true)

Initializes a new Future.

protected void Complete()

Moves this Future into completed state and execute all attached continuations.

public void OnCompleted(Action callback)

Attaches the callback that will be invoked on completion.