TaskFlow 1.0.0
dotnet add package TaskFlow --version 1.0.0
NuGet\Install-Package TaskFlow -Version 1.0.0
<PackageReference Include="TaskFlow" Version="1.0.0" />
<PackageVersion Include="TaskFlow" Version="1.0.0" />
<PackageReference Include="TaskFlow" />
paket add TaskFlow --version 1.0.0
#r "nuget: TaskFlow, 1.0.0"
#:package TaskFlow@1.0.0
#addin nuget:?package=TaskFlow&version=1.0.0
#tool nuget:?package=TaskFlow&version=1.0.0
TaskFlow for .NET
TaskFlow provides owned FIFO execution lanes for asynchronous .NET work. Use it when operations must run one at a time in submission order while each caller retains a task for its own result, failure, or cancellation.
Install
dotnet add package TaskFlow
Basic usage
using System.Threading.Tasks.Flow;
await using var flow = new TaskFlow();
Task first = flow.Enqueue(token => SaveAsync("first", token));
Task second = flow.Enqueue(token => SaveAsync("second", token));
await Task.WhenAll(first, second);
second starts only after first finishes. Calls to Enqueue are thread-safe, and one failed operation does not stop later queued operations.
Important behavior
- Cancellation is cooperative. Built-in flows invoke an accepted queued delegate even if its token was canceled while waiting.
DisposeAsyncrequests cancellation and waits for the lane to finish. Synchronous disposal is bounded byTaskFlowOptions.SynchronousDisposeTimeout.- Observe every returned operation task; disposal does not surface individual operation failures.
- Timeout includes time spent waiting in the underlying queue.
- Scheduler decorators do not own the flow they wrap. Dispose the original
ITaskFlow.
TaskFlow also provides dedicated-thread and caller-owned-thread flows, cancellation and timeout policies, leading-edge throttling, error observation, annotations, and interception.
Documentation
- Getting started
- Concepts and lifecycle
- Semantics and pitfalls
- Execution models
- Recipes
- Extensions
- Compatibility
- Troubleshooting
Source, license, and feedback are available in the TaskFlow repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 8.0.0)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on TaskFlow:
| Package | Downloads |
|---|---|
|
TaskFlow.Microsoft.Extensions.DependencyInjection
Microsoft dependency-injection integration for TaskFlow with scoped and named FIFO execution lanes and caller-owned factories. |
|
|
TaskFlow.Extensions.Time
Leading-edge admission throttling for TaskFlow on netstandard2.0 with TimeProvider-based deterministic timing. |
|
|
TaskFlow.Microsoft.Extensions.Logging
Structured Microsoft.Extensions.Logging lifecycle events for TaskFlow operations, including names, timing, cancellation, and failures. |
GitHub repositories
This package is not used by any popular GitHub repositories.