Lettuce.FluxWork
1.0.1
dotnet add package Lettuce.FluxWork --version 1.0.1
NuGet\Install-Package Lettuce.FluxWork -Version 1.0.1
<PackageReference Include="Lettuce.FluxWork" Version="1.0.1" />
<PackageVersion Include="Lettuce.FluxWork" Version="1.0.1" />
<PackageReference Include="Lettuce.FluxWork" />
paket add Lettuce.FluxWork --version 1.0.1
#r "nuget: Lettuce.FluxWork, 1.0.1"
#:package Lettuce.FluxWork@1.0.1
#addin nuget:?package=Lettuce.FluxWork&version=1.0.1
#tool nuget:?package=Lettuce.FluxWork&version=1.0.1
Lettuce.FluxWork
A minimalistic scheduling library for running sync or async work on configured intervals
Quick Start
Lettuce.FluxWork is available on nuget
Basic Schedule
Scheduling work is extremely simple with Flux, here is an example with a simple lambda
Flux.Schedule(() => Console.WriteLine("We are up and live!"), TimeSpan.FromSeconds(1));
Basic Schedule with Data
Have data that needs to be passed as a parameter, pass it to Flux so it can be efficiently captured
T myDataParameter = ...;
Flux.Schedule<T>((T dataParameter) => Console.WriteLine($"Got my parameter {dataParameter}"), myDataParameter, TimeSpan.FromSeconds(1));
Pausing and Removing Work
Need to pause or remove your schedules work, just pass the returned WorkHandle from scheduling
WorkHandle work = Flux.Schedule(() => Console.WriteLine("We are up and live!"), TimeSpan.FromSeconds(1));
Flux.PauseWork(work);
Flux.RemoveWork(work);
Async and Cancel Work
The Flux scheduler is thread safe when scheduling, pausing, or removing work. There is a small window where the work may already be running when attempting to pause or remove. For that case, pass a CancellationToken and allow your work to co-operatively cancel:
CancellationTokenSource cancellationToken = new CancellationTokenSource();
WorkHandle work = Flux.Schedule(LongRunningAsyncTask, cancellationToken.Token, TimeSpan.FromSeconds(5));
cancellationToken.Cancel();
Flux.RemoveWork(work);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. 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 is compatible. 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 is compatible. 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 was computed. 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. |
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.