private Task Process() { var state = new object(); new Timer(async(s) => { lock (_lock) { if (_isRunning) { return; } _isRunning = true; } try { var insights = await _storage.ReadAllData(); var deleteList = new List <IInsightData>(); var list = await Send(insights); foreach (var data in list.ToList()) { deleteList.Add(data); } foreach (var item in deleteList) { await _storage.Delete(item); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } finally { _isRunning = false; } }, state, 0, _tick, true); // Instant first run return(Task.FromResult(true)); }
public async Task <List <IInsightData> > GetQueue() { return((await _storage.ReadAllData()).ToList()); }