/// <summary> /// Routine to find duplicate entries in file map. /// </summary> /// <param name="matchPos"></param> public void PerformCrossMatch(int matchPos) { for (int scanPos = 0; scanPos < _fileMap.Count; scanPos++) { //Exculde same file from checking itself. if ((matchPos == scanPos) || (string.IsNullOrEmpty(_fileMap[scanPos].HashCode))) { continue; } //Ignore already checked if ((_fileMap[scanPos].IsIgnore) || (_fileMap[matchPos].IsIgnore)) { continue; } if (_fileMap[matchPos].HashCode == _fileMap[scanPos].HashCode) { if (OnMatchFound != null) { _fileMap[matchPos].IsIgnore = true; OutputEventArgs eventArgsData = new OutputEventArgs { OutputData = new OutputDataStruct(_fileMap[matchPos].FileName, _fileMap[scanPos].FileName, (_threadId + 1)) }; OnMatchFound(this, eventArgsData); } } } }
/// <summary> /// Routine to push detected duplicate entries to parent form. /// </summary> /// <param name="sender">Object related to the parent.</param> /// <param name="e">Event arugments.</param> public void OnUpdateUi(object sender, OutputEventArgs e) { while (!FrmFileScaner.OutputList.TryAdd(e.OutputData)) { Thread.Sleep(10); } }