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