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); }
public static Task <bool> ApplyStash(GitRepository repo, int s) { var monitor = new MessageDialogProgressMonitor(true, false, false, true); var t = Task.Run(delegate { try { var res = repo.ApplyStash(monitor, s); ReportStashResult(repo, res, null); return(res == StashApplyStatus.Applied); } catch (Exception ex) { string msg = GettextCatalog.GetString("Stash operation failed."); monitor.ReportError(msg, ex); return(false); } finally { monitor.Dispose(); } }); return(t); }