GuiDispatcher.Sharp.Maui
1.1.1
dotnet add package GuiDispatcher.Sharp.Maui --version 1.1.1
NuGet\Install-Package GuiDispatcher.Sharp.Maui -Version 1.1.1
<PackageReference Include="GuiDispatcher.Sharp.Maui" Version="1.1.1" />
<PackageVersion Include="GuiDispatcher.Sharp.Maui" Version="1.1.1" />
<PackageReference Include="GuiDispatcher.Sharp.Maui" />
paket add GuiDispatcher.Sharp.Maui --version 1.1.1
#r "nuget: GuiDispatcher.Sharp.Maui, 1.1.1"
#:package GuiDispatcher.Sharp.Maui@1.1.1
#addin nuget:?package=GuiDispatcher.Sharp.Maui&version=1.1.1
#tool nuget:?package=GuiDispatcher.Sharp.Maui&version=1.1.1
GuiDispatcher.Sharp.Maui
.NET MAUI 10 implementation of GuiDispatcher.Sharp for .NET 10.
Use this adapter in MAUI applications that need to expose the platform UI
dispatcher through the neutral IGuiDispatcher and IGuiTimer contracts.
Install
<PackageReference Include="GuiDispatcher.Sharp.Maui" Version="1.1.*" />
This package pulls in:
GuiDispatcher.Sharp1.1.1 or later, below 2.0;Microsoft.Maui.Core10.x.
Usage
The safest option is to pass the dispatcher from an existing MAUI page, window,
or other BindableObject:
using GuiDispatcher.Sharp.Contracts;
using GuiDispatcher.Sharp.Maui;
IGuiDispatcher dispatcher = new MauiGuiDispatcher(page.Dispatcher);
The parameterless constructor can be used when the service is created on a MAUI UI thread:
IGuiDispatcher dispatcher = new MauiGuiDispatcher();
If no dispatcher is associated with the current thread, the parameterless constructor throws instead of silently binding the service to a worker thread.
await dispatcher.InvokeAsync(() =>
{
viewModel.Apply(result);
});
using var timer = dispatcher.CreateTimer(TimeSpan.FromSeconds(1));
timer.Tick += (_, _) => viewModel.Refresh();
timer.Start();
MAUI's native IDispatcher.Dispatch reports whether it accepted an operation.
This adapter turns a rejected operation into an InvalidOperationException
instead of returning a task that can never complete.
Requirements
- .NET 10
- .NET MAUI 10
The adapter targets neutral net10.0; MAUI applications can consume it from
their Android, iOS, Mac Catalyst, Windows, and Tizen target frameworks.
NuGet publishing
Publishing uses NuGet Trusted Publishing from GitHub Actions, without a stored API key. Configure this policy on nuget.org before pushing the first release tag:
| Field | Value |
|---|---|
| Repository owner | buchmiet |
| Repository | GuiDispatcher.Sharp.Maui |
| Workflow file | publish-nuget.yml |
| Environment | production |
Releasing
Releases are cut by pushing a vX.Y.Z tag. Before tagging:
- Bump
<Version>inGuiDispatcher.Sharp.Maui.csproj. - Move the relevant
[Unreleased]entries inCHANGELOG.mdinto a dated release section. - Commit both changes.
- Tag and push:
git tag vX.Y.Z && git push origin vX.Y.Z.
For a coordinated release of the complete package family, follow the family release guide.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- GuiDispatcher.Sharp (>= 1.1.1 && < 2.0.0)
- Microsoft.Maui.Core (>= 10.0.0 && < 11.0.0)
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 |
|---|---|---|
| 1.1.1 | 104 | 7/24/2026 |