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); + } + } +}