using NLog;
using PDFGenerator.BusinessLayer;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace GestorePDF.Logic
{
    class MasterThread
    {
        public static ConcurrentQueue<DataThread> ThreadsQueue = new ConcurrentQueue<DataThread>();
        private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
        public static void ProcessDataInSingleThread()
        {
            GestoreThread gestoreThread = new GestoreThread();
            while (ThreadsQueue.Count > 0)
            {
                try
                {
                    DataThread dataThread = null;
                    ThreadsQueue.TryDequeue(out dataThread);
                    if (dataThread != null)
                    {
                        gestoreThread.DoWork(dataThread);
                    }
                }
                catch (Exception ex)
                {
                    logger.Errors(ex);
                }
                Thread.Sleep(50);
            }
            gestoreThread = null;
        }
    }
}