diff --git a/src/Avalonia.Native/AvaloniaNativePlatform.cs b/src/Avalonia.Native/AvaloniaNativePlatform.cs index 825eb254bea..2313c0f1d27 100644 --- a/src/Avalonia.Native/AvaloniaNativePlatform.cs +++ b/src/Avalonia.Native/AvaloniaNativePlatform.cs @@ -186,12 +186,14 @@ void DoInitialize(AvaloniaNativePlatformOptions options) Compositor = new Compositor(_platformGraphics, true); AvaloniaLocator.CurrentMutable.Bind().ToConstant(Compositor); - AppDomain.CurrentDomain.ProcessExit += OnProcessExit; + Dispatcher.UIThread.ShutdownFinished += OnShutdown; + AppDomain.CurrentDomain.ProcessExit += OnShutdown; } - private void OnProcessExit(object? sender, EventArgs e) + private void OnShutdown(object? sender, EventArgs e) { - AppDomain.CurrentDomain.ProcessExit -= OnProcessExit; + Dispatcher.UIThread.ShutdownFinished -= OnShutdown; + AppDomain.CurrentDomain.ProcessExit -= OnShutdown; _factory.Dispose(); }