public void MultipleThreadsParallelArchiver() { var cancellation = new Cancellation(); var finishedEvent = new AutoResetEvent(false); UseDefaultConfiguration(defaultConfiguration => { UseDifferentBufferSizes(defaultConfiguration, bufferSize => { var parallelCompressor = new ParallelCompressor( defaultConfiguration.CompressingFile, defaultConfiguration.CompressedFile, 1 * 10, bufferSize); UseMeasure((stopMeasure) => { parallelCompressor.Process(() => { stopMeasure(); finishedEvent.Set(); }, cancellation); }, defaultConfiguration.CompressingFile); finishedEvent.WaitOne(); }); var parallelDecompressor = new ParallelDecompressor( defaultConfiguration.DecompressingFile, defaultConfiguration.DecompressedFile); Console.WriteLine(); UseMeasure((stopMeasure) => { parallelDecompressor.Process(() => { stopMeasure(); finishedEvent.Set(); }, cancellation); }, defaultConfiguration.DecompressingFile); finishedEvent.WaitOne(); CompareMd5(defaultConfiguration.CompressingFile, defaultConfiguration.DecompressedFile); }); }
private static void CompressFile(string inputFile, string outputFile) { var pc = new ParallelCompressor(); using (var inStream = new FileStream(inputFile, FileMode.Open, FileAccess.Read)) using (var outStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write)) { pc.Compress(inStream, outStream); } }
public void TestDecompress() { var inputFile = @"c:\dev\veeam-test\GZipTest\bin\Debug\netcoreapp3.1\test_empty_0-compressed.out"; var outputFile = @"c:\dev\veeam-test\GZipTest\bin\Debug\netcoreapp3.1\test_empty_0-decompressed.out"; var pc = new ParallelCompressor(); using (var inStream = File.OpenRead(inputFile)) using (var outStream = File.OpenWrite(outputFile)) { pc.Decompress(inputCompressed: inStream, outputUncompressed: outStream); } }
public void MultipleThreadsBlockedParallelCompressor() { UseDefaultConfiguration(defaultConfiguration => { UseDifferentBufferSizes(defaultConfiguration, bufferSize => { var pc = new ParallelCompressor( defaultConfiguration.CompressingFile, defaultConfiguration.CompressedFile, 1 * 10, bufferSize); UseMeasure(stopMeasure => { pc.Process(() => { stopMeasure(); }, new Cancellation()); }, defaultConfiguration.CompressingFile); }); }); }