From 7acaac7bd3711063e2847d430d8145be069f5796 Mon Sep 17 00:00:00 2001 From: Michael Bucari-Tovo Date: Thu, 12 Aug 2021 12:25:28 -0600 Subject: [PATCH] Fixed subscription ordering. --- .../BookLiberation/BaseForms/ProcessBaseForm.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/LibationWinForms/BookLiberation/BaseForms/ProcessBaseForm.cs b/LibationWinForms/BookLiberation/BaseForms/ProcessBaseForm.cs index ee6f90e1..ca902a57 100644 --- a/LibationWinForms/BookLiberation/BaseForms/ProcessBaseForm.cs +++ b/LibationWinForms/BookLiberation/BaseForms/ProcessBaseForm.cs @@ -21,21 +21,24 @@ namespace LibationWinForms.BookLiberation processable.Completed += OnCompleted; processable.StatusUpdate += OnStatusUpdate; + //If IStreamable.StreamingCompleted is never fired, we still + //need to dispose of the form after IProcessable.Completed + processable.Completed += OnCompletedDispose; + //Don't unsubscribe from Dispose because it fires on //IStreamable.StreamingCompleted, and the IProcessable //events need to live past that event. processable.Completed += OnUnsubscribeAll; - processable.Completed += OnCompleetdDispose; } } - private void OnCompleetdDispose(object sender, LibraryBook e) => this.UIThread(() => Dispose()); + private void OnCompletedDispose(object sender, LibraryBook e) => this.UIThread(() => Dispose()); private void OnUnsubscribeAll(object sender, LibraryBook e) { if (Streamable is IProcessable processable) { processable.Completed -= OnUnsubscribeAll; - processable.Completed -= OnCompleetdDispose; + processable.Completed -= OnCompletedDispose; processable.Begin -= OnBegin; processable.Completed -= OnCompleted; processable.StatusUpdate -= OnStatusUpdate;