void StartConsume() { Task.Run(async() => { while (true) { var latestPingResult = ResultProducer.GetLatestPingResults(); if (latestPingResult.Count == 0) { return; } // persist result to datastore await DataStoreProvider.AppendDataAsync(latestPingResult, ResultProducer.HostName); Thread.Sleep(ConsumeDelayTime); } }); }