public static Task<bool> ApplyStash (GitRepository repo, int s) { var monitor = new MessageDialogProgressMonitor (true, false, false, true); var statusTracker = IdeApp.Workspace.GetFileStatusTracker (); var t = Task.Run (delegate { try { var res = repo.ApplyStash (monitor, s); ReportStashResult (res); return true; } catch (Exception ex) { string msg = GettextCatalog.GetString ("Stash operation failed."); monitor.ReportError (msg, ex); return false; } finally { monitor.Dispose (); statusTracker.Dispose (); } }); return t; }
public static IAsyncOperation ApplyStash (GitRepository repo, int s) { var monitor = new MessageDialogProgressMonitor (true, false, false, true); var statusTracker = IdeApp.Workspace.GetFileStatusTracker (); ThreadPool.QueueUserWorkItem (delegate { try { ReportStashResult (repo.ApplyStash (monitor, s)); } catch (Exception ex) { string msg = GettextCatalog.GetString ("Stash operation failed."); monitor.ReportError (msg, ex); } finally { monitor.Dispose (); statusTracker.Dispose (); } }); return monitor.AsyncOperation; }