Ejemplo n.º 1
0
        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);
            });
        }
Ejemplo n.º 2
0
        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);
                }
        }
Ejemplo n.º 3
0
        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);
                }
        }
Ejemplo n.º 4
0
        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);
                });
            });
        }