Browse Source
Use ProcessExit to cleanup the native resources
pull/12248/head
Julien Lebosquain
3 years ago
No known key found for this signature in database
GPG Key ID: 1833CAD10ACC46FD
2 changed files with
5 additions and
4 deletions
-
native/Avalonia.Native/src/OSX/main.mm
-
src/Avalonia.Native/AvaloniaNativePlatform.cs
|
|
@ -198,7 +198,8 @@ class AvaloniaNative : public ComSingleObject<IAvaloniaNativeFactory, &IID_IAval |
|
|
public: |
|
|
public: |
|
|
FORWARD_IUNKNOWN() |
|
|
FORWARD_IUNKNOWN() |
|
|
|
|
|
|
|
|
virtual ~AvaloniaNative() override { |
|
|
virtual ~AvaloniaNative() override |
|
|
|
|
|
{ |
|
|
ReleaseAvnAppEvents(); |
|
|
ReleaseAvnAppEvents(); |
|
|
_deallocator = nullptr; |
|
|
_deallocator = nullptr; |
|
|
_dispatcher = nullptr; |
|
|
_dispatcher = nullptr; |
|
|
|
|
|
@ -162,12 +162,12 @@ namespace Avalonia.Native |
|
|
|
|
|
|
|
|
Compositor = new Compositor(_platformGraphics, true); |
|
|
Compositor = new Compositor(_platformGraphics, true); |
|
|
|
|
|
|
|
|
Dispatcher.UIThread.ShutdownFinished += OnDispatcherShutdownFinished; |
|
|
AppDomain.CurrentDomain.ProcessExit += OnProcessExit; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void OnDispatcherShutdownFinished(object? sender, EventArgs e) |
|
|
private void OnProcessExit(object? sender, EventArgs e) |
|
|
{ |
|
|
{ |
|
|
Dispatcher.UIThread.ShutdownFinished -= OnDispatcherShutdownFinished; |
|
|
AppDomain.CurrentDomain.ProcessExit -= OnProcessExit; |
|
|
_factory.Dispose(); |
|
|
_factory.Dispose(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|