Namespace Icicle
Classes
- BaseHandle
A suspended delegate that a TaskScope can materialize
- InvalidRunTokenException
Thrown when a RunToken passed to a handle did not match the handle's RunToken; ie. the TaskScope that produced the RunToken was not the one that the handle was produced from
- ResultHandle
Represents a handle to an action after a Run(RunOptions?, CancellationToken) from a delegate added via Add(Func<CancellationToken, ValueTask>)
- ResultHandle<T>
Represents a handle to a result produced after a Run(RunOptions?, CancellationToken) from a delegate added via Add<T>(Func<CancellationToken, ValueTask<T>>)
- RunToken
Provides proof that Run(RunOptions?, CancellationToken) was executed, which can then be exchanged for the result of that execute with ResultHandle<T> or ResultHandle
- TaskScope
Core abstraction for structured concurrency. TaskScope supports cases where a Task splits into several child Task, and where the child Task must complete before the main Task continues. A TaskScope can be used to ensure that the lifetime of a concurrent operation is confined by a
using
block, just like that of a sequential operation in structured programming.
- TaskScope.WhenAll
An implementation of a TaskScope that runs all child tasks in parallel with optional windowing based on a provided
windowSize
- TaskScope.WhenAny
An implementation of a TaskScope that runs all child tasks in parallel stopping when the first child task completes
- TaskScopeCompletedException
Thrown when trying to modify a TaskScope after it has had Run(RunOptions?, CancellationToken) called on it
- TaskScopeNotRunException
Thrown when a Dispose() is called on a TaskScope and a Run(RunOptions?, CancellationToken) has not been called on it
Structs
- TaskScope.RunOptions
Options for configuring Run(RunOptions?, CancellationToken)
Enums
- ResultHandleState
States a ResultHandle<T> and ResultHandle can be in