public void Run(CancellationToken cancellationToken) { try { m_taskQueue.Dequeue(cancellationToken, action => { foreach (var x in m_subscribers.Collection) { try { action(x); } catch (Exception ex) { m_logger.UnhandledSubscriberException(ex); } } }); } catch (OperationCanceledException) { } catch (Exception ex) { m_logger.QueueException(ex); } }