diff --git a/src/Avalonia.Base/Rendering/Composition/Compositor.cs b/src/Avalonia.Base/Rendering/Composition/Compositor.cs index 21c7dd6bf9..e6b9600e45 100644 --- a/src/Avalonia.Base/Rendering/Composition/Compositor.cs +++ b/src/Avalonia.Base/Rendering/Composition/Compositor.cs @@ -47,11 +47,7 @@ namespace Avalonia.Rendering.Composition { Loop = loop; _server = new ServerCompositor(loop, gpu, _batchObjectPool, _batchMemoryPool); - _commit = () => - { - Console.WriteLine("Dispatcher:Commit"); - Commit(); - }; + _commit = () => Commit(); DefaultEasing = new CubicBezierEasing(new Point(0.25f, 0.1f), new Point(0.25f, 1f)); } diff --git a/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs b/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs index 84c3cc5c51..9a6bd9572a 100644 --- a/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs +++ b/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs @@ -120,10 +120,14 @@ namespace Avalonia.Win32.WinRT.Composition private void RunLoop() { + var cts = new CancellationTokenSource(); + AppDomain.CurrentDomain.ProcessExit += (sender, args) => + cts.Cancel(); + using (var act = _compositor5.RequestCommitAsync()) act.SetCompleted(new RunLoopHandler(this)); - while (true) + while (!cts.IsCancellationRequested) { UnmanagedMethods.GetMessage(out var msg, IntPtr.Zero, 0, 0); lock (_pumpLock)