GuiDispatcher.Sharp.ProGPU
1.1.2-preview48
dotnet add package GuiDispatcher.Sharp.ProGPU --version 1.1.2-preview48
NuGet\Install-Package GuiDispatcher.Sharp.ProGPU -Version 1.1.2-preview48
<PackageReference Include="GuiDispatcher.Sharp.ProGPU" Version="1.1.2-preview48" />
<PackageVersion Include="GuiDispatcher.Sharp.ProGPU" Version="1.1.2-preview48" />
<PackageReference Include="GuiDispatcher.Sharp.ProGPU" />
paket add GuiDispatcher.Sharp.ProGPU --version 1.1.2-preview48
#r "nuget: GuiDispatcher.Sharp.ProGPU, 1.1.2-preview48"
#:package GuiDispatcher.Sharp.ProGPU@1.1.2-preview48
#addin nuget:?package=GuiDispatcher.Sharp.ProGPU&version=1.1.2-preview48&prerelease
#tool nuget:?package=GuiDispatcher.Sharp.ProGPU&version=1.1.2-preview48&prerelease
GuiDispatcher.Sharp.ProGPU
Native ProGPU WebGPU UI-thread implementation of GuiDispatcher.Sharp for .NET 10.
ProGPU exposes a WinUI-shaped application and controls layer, but rendering is
performed by ProGPU's GPU-first WebGPU compositor. This adapter targets that
native ProGPU runtime through Microsoft.UI.Xaml.UIThread; it does not use the
Microsoft Windows App SDK dispatcher.
Install
<PackageReference Include="GuiDispatcher.Sharp.ProGPU" Version="1.1.2-preview48" />
This package pulls in GuiDispatcher.Sharp 1.1.2 or later, below 2.0, and
ProGPU.WinUI 0.1.0-preview.48 or later, below 0.2.0.
The stable 1.1.2 part follows the common dispatcher-family version. The
preview48 suffix follows ProGPU.WinUI preview 48. Future ProGPU previews can
therefore produce 1.1.2-preview49, 1.1.2-preview50, and so on without
changing the dispatcher contract version.
Usage
Create the adapter on the ProGPU application thread and register that instance:
using GuiDispatcher.Sharp.Contracts;
using GuiDispatcher.Sharp.ProGPU;
services.AddSingleton<IGuiDispatcher>(_ => new ProGpuGuiDispatcher());
ProGPU's queue is process-wide and does not expose a dispatcher object.
ProGpuGuiDispatcher therefore captures the constructing thread as the UI
thread. Do not construct it on a worker thread.
await dispatcher.InvokeAsync(async () =>
{
var result = await service.LoadAsync();
viewModel.Apply(result);
});
using var timer = dispatcher.CreateTimer(TimeSpan.FromSeconds(1));
timer.Tick += (_, _) => viewModel.Refresh();
timer.Start();
InvokeAsync(Func<Task>) installs a ProGPU-backed synchronization context for
the callback. Its continuations return through UIThread.Post without blocking
the WebGPU application loop.
Requirements
- .NET 10
- ProGPU.WinUI 0.1.0-preview.47 or later, below 0.2.0
- A running ProGPU host that calls
UIThread.RunPending
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.ProGPU |
| Workflow file | publish-nuget.yml |
| Environment | production |
Releasing
Releases are cut by pushing a vX.Y.Z tag. Before tagging:
- Bump
<Version>inGuiDispatcher.Sharp.ProGPU.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.2 && < 2.0.0)
- ProGPU.WinUI (>= 0.1.0-preview.48 && < 0.2.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.2-preview48 | 77 | 8/15/2026 |
| 1.1.1-preview47 | 67 | 8/11/2026 |
| 1.1.1-preview26 | 67 | 7/24/2026 |