Header menu logo IcedTasks

Comparison between different Async types

Computation Expression1

Library2

TFM3

Hot/Cold4

Multiple Awaits 5

Multi-start6

Tailcalls7

CancellationToken propagation8

Cancellation checks9

Parallel when using and!10

use IAsyncDisposable 11

F# Async

FSharp.Core

netstandard2.0

Cold

Multiple

multiple

tailcalls

implicit

implicit

No

No

F# AsyncEx

IcedTasks

netstandard2.0

Cold

Multiple

multiple

tailcalls

implicit

implicit

No

Yes

F# ParallelAsync

IcedTasks

netstandard2.0

Cold

Multiple

multiple

tailcalls

implicit

implicit

Yes

No

F# Task/C# Task

FSharp.Core

netstandard2.0

Hot

Multiple

once-start

no tailcalls

explicit

explicit

No

Yes

F# ValueTask

IcedTasks

netstandard2.0

Hot

Once

once-start

no tailcalls

explicit

explicit

Yes

Yes

F# ColdTask

IcedTasks

netstandard2.0

Cold

Multiple

multiple

no tailcalls

explicit

explicit

Yes

Yes

F# CancellableTask

IcedTasks

netstandard2.0

Cold

Multiple

multiple

no tailcalls

implicit

implicit

Yes

Yes

F# CancellableValueTask

IcedTasks

netstandard2.0

Cold

Once

multiple

no tailcalls

implicit

implicit

Yes

Yes

Type something to start searching.