diff --git a/src/Avalonia.Base/Threading/Dispatcher.MainLoop.cs b/src/Avalonia.Base/Threading/Dispatcher.MainLoop.cs index cabbabcf6b..cfb1cb7e2f 100644 --- a/src/Avalonia.Base/Threading/Dispatcher.MainLoop.cs +++ b/src/Avalonia.Base/Threading/Dispatcher.MainLoop.cs @@ -97,6 +97,12 @@ public partial class Dispatcher /// public void BeginInvokeShutdown(DispatcherPriority priority) => Post(StartShutdownImpl, priority); + + /// + /// Initiates the shutdown process of the Dispatcher synchronously. + /// + public void InvokeShutdown() => Invoke(StartShutdownImpl, DispatcherPriority.Send); + private void StartShutdownImpl() { if (!_startingShutdown) diff --git a/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs b/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs index 16fc46563f..9cc36e6a81 100644 --- a/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs +++ b/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs @@ -184,7 +184,7 @@ namespace Avalonia.Controls.ApplicationLifetimes _cts?.Cancel(); _cts = null; _isShuttingDown = false; - Dispatcher.UIThread.BeginInvokeShutdown(DispatcherPriority.Send); + Dispatcher.UIThread.InvokeShutdown(); } return true;