protected override void WorkInternal(MultiThreadWorkerParameters parameters) { SetBlocksAmount(parameters.InputFileInfo); InitializeBuffer(); var threads = GetThreads(RunCompression); try { using (var outputArchiveFileStream = parameters.OutputFileInfo.OpenWrite()) { WriteOriginalFileSize(parameters.InputFileInfo, outputArchiveFileStream); foreach (var thread in threads) { thread.Start(new RunCompressionParameters { InputFileInfo = parameters.InputFileInfo, OutputFileStream = outputArchiveFileStream }); } foreach (var thread in threads) { thread.Join(); } } } catch (UnauthorizedAccessException) { throw new GZipTestPublicException($"{parameters.OutputFileInfo.FullName}: can not get access to file"); } }
protected override void WorkInternal(MultiThreadWorkerParameters parameters) { try { using (var inputArchiveFileStream = parameters.InputFileInfo.OpenRead()) { try { using (var outputFileStream = parameters.OutputFileInfo.OpenWrite()) { SetOutputFileSize(inputArchiveFileStream, outputFileStream); var threads = GetThreads(RunDecompression); foreach (var thread in threads) { thread.Start(new RunDecompressionParameters { InputFileStream = inputArchiveFileStream, OutputFileStream = outputFileStream }); } foreach (var thread in threads) { thread.Join(); } } } catch (UnauthorizedAccessException) { throw new GZipTestPublicException($"{parameters.OutputFileInfo.FullName}: can not get access to file"); } } } catch (UnauthorizedAccessException) { throw new GZipTestPublicException($"{parameters.InputFileInfo.FullName}: can not get access to file"); } }