internal FsFileData GetFileData(long length, FileComparisonInfo comparisonInfo) { Monitor.Enter(_fileData); try { SizeGroupedFileData fileData; if (_fileData.ContainsKey(length)) { fileData = _fileData[length]; } else { fileData = new SizeGroupedFileData(length); _fileData.Add(length, fileData); } return(fileData.GetFile(comparisonInfo)); } finally { Monitor.Exit(_fileData); } }
internal FsFileData GetFileData(long length, MD5Checksum?checksum) { Monitor.Enter(_fileData); try { SizeGroupedFileData fileData; if (_fileData.ContainsKey(length)) { fileData = _fileData[length]; } else { fileData = new SizeGroupedFileData(length); _fileData.Add(length, fileData); } return(fileData.GetFile(checksum)); } finally { Monitor.Exit(_fileData); } }