private void DecompressWork()
        {
            byte[] buffer;
            int    chunkIndex = 0;

            int readLength = 0;

            while (!_StopWork && (readLength = _ChunkReader.ReadChunk(out buffer, out chunkIndex)) > 0)
            {
                byte[] decompressed = null;
                using (MemoryStream ws = new MemoryStream())
                {
                    using (MemoryStream ms = new MemoryStream(buffer))
                        using (GZipStream gzip = new GZipStream(ms, CompressionMode.Decompress))
                            gzip.CopyTo(ws);

                    decompressed = ws.ToArray();
                }

                _ChunkWriter.WriteChunk(decompressed, 0, decompressed.Length, chunkIndex);
            }
        }
示例#2
0
        private void CompressWork()
        {
            int chunkIndex = 0;

            byte[] buffer;

            int readLength = 0;

            while (!_StopWork && (readLength = _ChunkReader.ReadChunk(out buffer, out chunkIndex)) > 0)
            {
                byte[] compressed = null;
                using (MemoryStream ms = new MemoryStream())
                {
                    using (GZipStream gzip = new GZipStream(ms, CompressionMode.Compress))
                    {
                        gzip.Write(buffer, 0, readLength);
                    }

                    compressed = ms.ToArray();
                }

                _ChunkWriter.WriteChunk(compressed, 0, compressed.Length, chunkIndex);
            }
        }