From e53100de133f84e75a686a6be363c51877cb60e1 Mon Sep 17 00:00:00 2001 From: Dan Clark Date: Sun, 3 Nov 2024 14:12:29 +0000 Subject: [PATCH] Add WinUIDispatcher --- Toolkit.WinUI/IServiceCollectionExtensions.cs | 13 ++++++++----- Toolkit.WinUI/WinUIDispatcher.cs | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 Toolkit.WinUI/WinUIDispatcher.cs diff --git a/Toolkit.WinUI/IServiceCollectionExtensions.cs b/Toolkit.WinUI/IServiceCollectionExtensions.cs index c2c64e7..6f83ef8 100644 --- a/Toolkit.WinUI/IServiceCollectionExtensions.cs +++ b/Toolkit.WinUI/IServiceCollectionExtensions.cs @@ -1,9 +1,4 @@ using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Toolkit.Foundation; namespace Toolkit.WinUI; @@ -12,7 +7,15 @@ public static class IServiceCollectionExtensions { public static IServiceCollection AddWinUI(this IServiceCollection services) { + services.AddTransient(); services.AddTransient(); + + services.AddTransient((Func>)(provider => + new ProxyServiceCollection(services => + { + + }))); + return services; } } diff --git a/Toolkit.WinUI/WinUIDispatcher.cs b/Toolkit.WinUI/WinUIDispatcher.cs new file mode 100644 index 0000000..7ae5f17 --- /dev/null +++ b/Toolkit.WinUI/WinUIDispatcher.cs @@ -0,0 +1,14 @@ +using Microsoft.UI.Dispatching; +using Toolkit.Foundation; + +namespace Toolkit.WinUI; + +public class WinUIDispatcher : + IDispatcher +{ + public Task Invoke(Action action) + { + DispatcherQueue.GetForCurrentThread().TryEnqueue(action.Invoke); + return Task.CompletedTask; + } +}