Dispatcher.Sharp
1.0.1
dotnet add package Dispatcher.Sharp --version 1.0.1
NuGet\Install-Package Dispatcher.Sharp -Version 1.0.1
<PackageReference Include="Dispatcher.Sharp" Version="1.0.1" />
<PackageVersion Include="Dispatcher.Sharp" Version="1.0.1" />
<PackageReference Include="Dispatcher.Sharp" />
paket add Dispatcher.Sharp --version 1.0.1
#r "nuget: Dispatcher.Sharp, 1.0.1"
#:package Dispatcher.Sharp@1.0.1
#addin nuget:?package=Dispatcher.Sharp&version=1.0.1
#tool nuget:?package=Dispatcher.Sharp&version=1.0.1
Dispatcher.Sharp
Small platform-agnostic UI dispatcher and UI timer abstractions.
Use this package from view models, services, debouncers, and other code that needs to marshal work back to a GUI/main thread without referencing a UI framework directly.
Install
<PackageReference Include="Dispatcher.Sharp" Version="1.0.*" />
Or via CLI:
dotnet add package Dispatcher.Sharp
Versioning follows CI run numbers (1.0.{run}) on pushes to main.
Contracts
public interface IGuiDispatcher
{
bool CheckAccess();
void Post(Action action);
void Invoke(Action action);
Task InvokeAsync(Action action);
Task InvokeAsync(Func<Task> action);
T Invoke<T>(Func<T> func);
IGuiTimer CreateTimer(TimeSpan interval);
IDisposable RunOnce(Action action, TimeSpan interval);
}
IGuiTimer exposes Tick, Interval, IsEnabled, Start, Stop, and Dispose.
Headless/default implementation
using Dispatcher.Sharp;
IGuiDispatcher dispatcher = new ImmediateGuiDispatcher();
await dispatcher.InvokeAsync(() =>
{
viewModel.Apply(result);
});
ImmediateGuiDispatcher executes posted/invoked work inline. Its timers use System.Threading.Timer and dispatch ticks through Post, which keeps tests and console hosts deterministic enough without a GUI framework dependency.
UI implementations
Install a platform adapter package for GUI applications:
<PackageReference Include="Dispatcher.Sharp.Avalonia" Version="1.0.*" />
WinUI 3 support is planned separately.
| 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 was computed. 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 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. |
| .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
- 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.
| Version | Downloads | Last Updated |
|---|