Fixed subscription ordering.

This commit is contained in:
Michael Bucari-Tovo 2021-08-12 12:25:28 -06:00
parent 448fd78b8f
commit 7acaac7bd3

View File

@ -21,21 +21,24 @@ namespace LibationWinForms.BookLiberation
processable.Completed += OnCompleted; processable.Completed += OnCompleted;
processable.StatusUpdate += OnStatusUpdate; 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 //Don't unsubscribe from Dispose because it fires on
//IStreamable.StreamingCompleted, and the IProcessable //IStreamable.StreamingCompleted, and the IProcessable
//events need to live past that event. //events need to live past that event.
processable.Completed += OnUnsubscribeAll; 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) private void OnUnsubscribeAll(object sender, LibraryBook e)
{ {
if (Streamable is IProcessable processable) if (Streamable is IProcessable processable)
{ {
processable.Completed -= OnUnsubscribeAll; processable.Completed -= OnUnsubscribeAll;
processable.Completed -= OnCompleetdDispose; processable.Completed -= OnCompletedDispose;
processable.Begin -= OnBegin; processable.Begin -= OnBegin;
processable.Completed -= OnCompleted; processable.Completed -= OnCompleted;
processable.StatusUpdate -= OnStatusUpdate; processable.StatusUpdate -= OnStatusUpdate;