示例#1
0
        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));
        }
示例#2
0
 public async Task <List <IInsightData> > GetQueue()
 {
     return((await _storage.ReadAllData()).ToList());
 }