/// <summary>
 /// Dispose concurrent queue.
 /// </summary>
 /// <param name="disposing">indicate whether the queue is disposing</param>
 protected override void Dispose(bool disposing)
 {
     if (!disposing)
     {
         return;
     }
     Task.Run(async() =>
     {
         await Stop().ConfigureAwait(false);
         _queue.Dispose();
         base.Dispose(true);
     });
 }