Browse Source

#8261 - terminating WinUIComposition loop on process exit to avoid crashes

pull/9000/head
Herman Kirshin 3 years ago
parent
commit
a09db71356
  1. 6
      src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs

6
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)

Loading…
Cancel
Save