public async Task Idle_sensor(consumer_queue <WaypointsType> Consumer, TimeSpan Idle_timeout) { var Async_delay = Task.Delay(Idle_timeout); await Async_delay; try { if (Async_delay.Status != TaskStatus.RanToCompletion) { throw new Exception("await Task.Delay for Idle_timeout"); } if (Consumer.stopped == false) { if (Received_flag == false) { Consumer.Forget_topic(amqp.routing_key); // Should (eventually) take itself out from dict of accumulated messages. return; } Received_flag = false; Task.Run(async() => Idle_sensor(Consumer, Idle_timeout)); } } catch (Exception e) { lock (Consumer.queue) { Consumer.AddToExceptionText(e.Message); } } }
public void Forget_subscribed_topic(string Topic_name) { consumer.Forget_topic(Topic_name); }