public static void Save(string fileName, SpectraFileHeader header, MasterSpectra data) { using (FileStream fileStr = new FileStream(fileName, FileMode.Create, FileAccess.Write)) using (DeflateStream deflateStream = new DeflateStream(fileStr, CompressionMode.Compress, true)) using (BinaryWriter writer = new BinaryWriter(deflateStream)) { writer.Write(SPECTRA_FILE_VERSION); header.WriteTo(writer); if (data != null) { ThreadingHelper.RunTaskWaitAndDoEvents( delegate() { data.WriteTo(writer); }, 150); } writer.Flush(); deflateStream.Flush(); } }