/// <summary> /// Removes the data from cache. /// </summary> /// <param name="quotesManager">The QuotesManager instance</param> /// <param name="list">Collection of quotes manager storage data.</param> public static void RemoveData(QuotesManager quotesManager, IEnumerable <IQMData> list) { Queue <RemoveQuotesTask> removeTasks = new Queue <RemoveQuotesTask>(); RemoveQuotesListener removeQuotesListener = new RemoveQuotesListener(); foreach (IQMData data in list) { RemoveQuotesTask task = quotesManager.createRemoveQuotesTask(data.Instrument, data.Timeframe, removeQuotesListener); task.addYear(data.Year); removeTasks.Enqueue(task); } while (removeTasks.Count > 0) { StartNextRemoveTask(quotesManager, removeTasks, removeQuotesListener); } }
/// <summary> /// Tries to start next remove task. /// </summary> /// <param name="quotesManager">The QuotesManager instance</param> /// <param name="removeTasks">Collection of remove tasks</param> /// <param name="removeQuoteListener">Listener of remove quotes task</param> private static void StartNextRemoveTask(QuotesManager quotesManager, Queue <RemoveQuotesTask> removeTasks, RemoveQuotesListener removeQuoteListener) { RemoveQuotesTask removeTask = removeTasks.Dequeue(); quotesManager.executeTask(removeTask); removeQuoteListener.WaitEvents(); }