From 30cf430bff008a3b8d74de2bfb001c40d1aa5023 Mon Sep 17 00:00:00 2001 From: Andrey Nasonov Date: Thu, 31 Mar 2022 10:41:32 +0700 Subject: [PATCH] Fixed long-running operations on SnackBarMessage callback (#2627) actionClickWaitHandle will be disposed after message auto-closed. We need to avoid call any methods on disposed EventWaitHandle, need to check is it closed (disposed) or invalid --- MaterialDesignThemes.Wpf/SnackbarMessageQueue.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MaterialDesignThemes.Wpf/SnackbarMessageQueue.cs b/MaterialDesignThemes.Wpf/SnackbarMessageQueue.cs index 5110af6b44..c9679c58b7 100644 --- a/MaterialDesignThemes.Wpf/SnackbarMessageQueue.cs +++ b/MaterialDesignThemes.Wpf/SnackbarMessageQueue.cs @@ -384,6 +384,11 @@ private static Tuple CreateAndSh { if (++clickCount == 1) DoActionCallback(messageQueueItem); + + // Don't operate with eventWaitHandle if disposed/invalid + if (actionClickWaitHandle.SafeWaitHandle.IsInvalid || actionClickWaitHandle.SafeWaitHandle.IsClosed) + return; + actionClickWaitHandle.Set(); }; snackbar.SetCurrentValue(Snackbar.MessageProperty, snackbarMessage);