public void Remove(Toast toast) { toast.Dispose(); toast.OnClose -= Remove; ToastLock.EnterWriteLock(); try { var index = Toasts.IndexOf(toast); if (index < 0) { return; } Toasts.RemoveAt(index); } finally { ToastLock.ExitWriteLock(); } OnToastsUpdated?.Invoke(); }