public void MinimizeToFile(string targetFile) { var targetSkydFile = ChromatogramCache.FinalPathForName(targetFile, null); using (var skydSaver = new FileSaver(targetSkydFile)) using (var scansSaver = new FileSaver(targetSkydFile + ChromatogramCache.SCANS_EXT, true)) using (var peaksSaver = new FileSaver(targetSkydFile + ChromatogramCache.PEAKS_EXT, true)) using (var scoreSaver = new FileSaver(targetSkydFile + ChromatogramCache.SCORES_EXT, true)) { skydSaver.Stream = File.OpenWrite(skydSaver.SafeName); using (var longWaitDlg = new LongWaitDlg(DocumentUIContainer)) { longWaitDlg.PerformWork(this, 1000, longWaitBroker => { longWaitBroker.Message = Resources.MinimizeResultsDlg_MinimizeToFile_Saving_new_cache_file; try { using (var backgroundWorker = new BackgroundWorker(this, longWaitBroker)) { backgroundWorker.RunBackground(skydSaver.Stream, scansSaver.FileStream, peaksSaver.FileStream, scoreSaver.FileStream); } } catch (ObjectDisposedException) { if (!longWaitBroker.IsCanceled) { throw; } } }); if (longWaitDlg.IsCanceled) { return; } } var skylineWindow = (SkylineWindow) DocumentUIContainer; if (!skylineWindow.SaveDocument(targetFile, false)) { return; } try { var measuredResults = DocumentUIContainer.Document.Settings.MeasuredResults.CommitCacheFile(skydSaver); SrmDocument docOrig, docNew; do { docOrig = DocumentUIContainer.Document; docNew = docOrig.ChangeMeasuredResults(measuredResults); } while (!DocumentUIContainer.SetDocument(docNew, docOrig)); } catch (Exception x) { var message = TextUtil.LineSeparate( string.Format(Resources.MinimizeResultsDlg_MinimizeToFile_An_unexpected_error_occurred_while_saving_the_data_cache_file__0__, targetFile), x.Message); MessageDlg.ShowWithException(this, message, x); return; } skylineWindow.InvalidateChromatogramGraphs(); } DialogResult = DialogResult.OK; }