Browse Source

Merge pull request #9000 from JetBrains/fixes/8261-winuicomposition-loop

#8261 - terminating WinUIComposition loop on process exit to avoid cr…
pull/9003/head
Nikita Tsukanov 3 years ago
committed by GitHub
parent
commit
93f3772ab1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  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