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); }); }
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); }); }); }