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 ThreadsQueue = new ConcurrentQueue(); 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; } } }