private void checkDatafile(DatafileCheckerStruct pDatafileCheckerStruct, DoWorkEventArgs e)
        {
            StreamWriter sw;

            datafile      dataFile   = new datafile();
            XmlSerializer serializer = new XmlSerializer(dataFile.GetType());
            TextReader    textReader = new StreamReader(pDatafileCheckerStruct.datafilePath);

            dataFile = (datafile)serializer.Deserialize(textReader);
            textReader.Close();

            AuditingUtil auditingUtil = new AuditingUtil(dataFile);

            // Check for duplicates
            string dupePath = pDatafileCheckerStruct.outputPath + Path.DirectorySeparatorChar + "_DUPE.TXT";

            if (File.Exists(dupePath))
            {
                File.Delete(dupePath);
            }
            sw = File.CreateText(dupePath);

            // Update max items
            maxItems = auditingUtil.ChecksumHash.Count;

            this.checkForDupes(auditingUtil, sw);

            sw.Close();
            sw.Dispose();
        }
        protected override void OnDoWork(DoWorkEventArgs e)
        {
            DatafileCheckerStruct datafileCheckerStruct = (DatafileCheckerStruct)e.Argument;

            this.checkDatafile(datafileCheckerStruct, e);
        }