From 54e835687bcfea320db56fa73b0315d4287892a7 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 1 Apr 2021 15:10:43 -0700 Subject: [PATCH] Only rely on cancellation not disposal --- MPF.Library/Data/ProcessingQueue.cs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/MPF.Library/Data/ProcessingQueue.cs b/MPF.Library/Data/ProcessingQueue.cs index 4a31c8bd..e98442c3 100644 --- a/MPF.Library/Data/ProcessingQueue.cs +++ b/MPF.Library/Data/ProcessingQueue.cs @@ -17,11 +17,6 @@ namespace MPF.Data /// private readonly Action CustomProcessing; - /// - /// Internal processing task for dequeueing - /// - private readonly Task ProcessingTask; - /// /// Cancellation method for the processing task /// @@ -32,7 +27,7 @@ namespace MPF.Data this.InternalQueue = new ConcurrentQueue(); this.CustomProcessing = customProcessing; this.TokenSource = new CancellationTokenSource(); - this.ProcessingTask = Task.Run(() => ProcessQueue(), this.TokenSource.Token); + Task.Run(() => ProcessQueue(), this.TokenSource.Token); } /// @@ -41,8 +36,6 @@ namespace MPF.Data public void Dispose() { this.TokenSource.Cancel(); - while (!this.ProcessingTask.IsCompleted) ; - this.ProcessingTask.Dispose(); } /// @@ -51,7 +44,8 @@ namespace MPF.Data /// public void Enqueue(T item) { - this.InternalQueue.Enqueue(item); + if (!this.TokenSource.IsCancellationRequested) + this.InternalQueue.Enqueue(item); } ///