GuiDispatcher.Sharp
1.0.1
See the version list below for details.
dotnet add package GuiDispatcher.Sharp --version 1.0.1
NuGet\Install-Package GuiDispatcher.Sharp -Version 1.0.1
<PackageReference Include="GuiDispatcher.Sharp" Version="1.0.1" />
<PackageVersion Include="GuiDispatcher.Sharp" Version="1.0.1" />
<PackageReference Include="GuiDispatcher.Sharp" />
paket add GuiDispatcher.Sharp --version 1.0.1
#r "nuget: GuiDispatcher.Sharp, 1.0.1"
#:package GuiDispatcher.Sharp@1.0.1
#addin nuget:?package=GuiDispatcher.Sharp&version=1.0.1
#tool nuget:?package=GuiDispatcher.Sharp&version=1.0.1
GuiDispatcher.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="GuiDispatcher.Sharp" Version="1.0.*" />
Or via CLI:
dotnet add package GuiDispatcher.Sharp
Versioning follows CI run numbers (1.0.{run}) on pushes to main.
NuGet publishing
Publishing uses NuGet Trusted Publishing from GitHub Actions, not a stored API key.
Configure a trusted publishing policy on nuget.org:
| Field | Value |
|---|---|
| Repository owner | buchmiet |
| Repository | GuiDispatcher.Sharp |
| Workflow file | publish-nuget.yml |
| Environment | production |
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 GuiDispatcher.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="GuiDispatcher.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 (7)
Showing the top 5 NuGet packages that depend on GuiDispatcher.Sharp:
| Package | Downloads |
|---|---|
|
Debouncer.Sharp
Thread-safe debounce primitives for delayed, coalesced async work. |
|
|
GuiDispatcher.Sharp.Avalonia
Avalonia 12 implementation of GuiDispatcher.Sharp for .NET 10. |
|
|
GuiDispatcher.Sharp.Maui
.NET MAUI 10 implementation of GuiDispatcher.Sharp for .NET 10. |
|
|
GuiDispatcher.Sharp.Consolonia
Consolonia 11 implementation of GuiDispatcher.Sharp for .NET 10. |
|
|
GuiDispatcher.Sharp.WinUI
WinUI 3 implementation of GuiDispatcher.Sharp for .NET 10 and Windows App SDK 2. |
GitHub repositories
This package is not used by any popular GitHub repositories.