From d42b22d5e81a6476432fa3b0430e2997d0ce2f2c Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 2 Mar 2019 10:51:56 +0000 Subject: [PATCH] Add GCNotifier class. --- src/Avalonia.Base/Utilities/GCNotifier.cs | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/Avalonia.Base/Utilities/GCNotifier.cs diff --git a/src/Avalonia.Base/Utilities/GCNotifier.cs b/src/Avalonia.Base/Utilities/GCNotifier.cs new file mode 100644 index 0000000000..f42e78c76a --- /dev/null +++ b/src/Avalonia.Base/Utilities/GCNotifier.cs @@ -0,0 +1,29 @@ +// Copyright (c) The Avalonia Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. + +using System; + +namespace Avalonia.Utilities +{ + public class GCNotifier + { + public static event EventHandler GarbageCollected; + + static GCNotifier() + { + new GCNotifier(); + } + + ~GCNotifier() + { + if (Environment.HasShutdownStarted || AppDomain.CurrentDomain.IsFinalizingForUnload()) + { + return; + } + + new GCNotifier(); + + GarbageCollected?.Invoke(null, EventArgs.Empty); + } + } +}