private void Consumer_OnMessage(object sender, Message e) { try { circuitBreaker.Success(); Logger.Debug($"message consumed"); var receiveTask = InnerReceive(e); runningReceiveTasks.TryAdd(receiveTask, receiveTask); receiveTask.ContinueWith((t, state) => { var receiveTasks = (ConcurrentDictionary <Task, Task>)state; Task toBeRemoved; receiveTasks.TryRemove(t, out toBeRemoved); }, runningReceiveTasks, TaskContinuationOptions.ExecuteSynchronously); } catch (OperationCanceledException) { // For graceful shutdown purposes return; } }
private void Consumer_OnMessage(object sender, Message e) { circuitBreaker.Success(); Logger.Debug($"message consumed"); var receiveTask = InnerReceive(e); runningReceiveTasks.TryAdd(receiveTask, receiveTask); receiveTask.ContinueWith((t, state) => { var receiveTasks = (ConcurrentDictionary <Task, Task>)state; Task toBeRemoved; receiveTasks.TryRemove(t, out toBeRemoved); }, runningReceiveTasks, TaskContinuationOptions.ExecuteSynchronously); }