public void ProcessFiles()
        {
            IsRunning = true;

            while (IsRunning)
            {
                List<CurrentCaptureFile> files = new List<CurrentCaptureFile>();

                while (FileQueue.Count > 0)
                {
                    CurrentCaptureFile file = FileQueue.Dequeue();
                    files.Add(file);
                }

                CaptureFileData cfd = new CaptureFileData();

                foreach(CurrentCaptureFile file in files)
                {
                    file.CaptureBatchId = cfd.GetBatchId(file.FileName);
                    if (cfd.GetParsedFileStatus(file.CaptureBatchId))
                    {
                        BatchIntervalEngine intervalEngine = new BatchIntervalEngine(DatabaseConnections.SqlConnection, AnalysisConfiguration.ProcessedCaptureFilesPath, file.FileName, 5, AnalysisConfiguration.IntervalSize);
                        intervalEngine.ProcessNewBatchIntervals();
                        CreateAnalysisData(file);
                        intervalEngine = null;
                    }
                    else
                    {
                        FileQueue.Enqueue(file);
                    }
                }

                if(files.Count > 0)
                {
                    files.Clear();
                }
                Thread.Sleep(3000);
            }
        }