public static List <SearchResult> ReadSearchResultsViaBiblioSpec(String filename, Func <int, bool> progressMonitor) { string tempFile = null; try { tempFile = Path.GetTempFileName(); var blibBuild = new BlibBuild(tempFile, new[] { filename }) { CompressLevel = 0, }; var status = new ProgressStatus(""); var progressMonitorImpl = ProgressMonitorImpl.NewProgressMonitorImpl(status, progressMonitor); string[] ambiguousPeptides; blibBuild.BuildLibrary(LibraryBuildAction.Create, progressMonitorImpl, ref status, out ambiguousPeptides); return(ReadBiblioSpecDatabase(tempFile, progressMonitor)); } finally { try { if (tempFile != null) { File.Delete(tempFile); } } catch (Exception exception) { Trace.TraceWarning("Exception deleting temp file {0}", exception); } } }
public override bool RunLongJob(Control owner, Action <IProgressMonitor> job) { using (var longWaitDialog = new LongWaitDialog(owner.TopLevelControl, Program.AppName)) { var longOperationBroker = new LongOperationBroker( broker => job.Invoke(ProgressMonitorImpl.NewProgressMonitorImpl(new ProgressStatus("Working"), iProgress => { try { broker. UpdateStatusMessage( iProgress + "% complete"); return(true); } catch (JobCancelledException) { return(false); } })), longWaitDialog); longOperationBroker.LaunchJob(); return(!longOperationBroker.WasCancelled); } }