Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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();
        }