protected override void Run() { var stashes = Repository.GetStashes(); MessageDialogProgressMonitor monitor = new MessageDialogProgressMonitor(true, false, false, true); var statusTracker = IdeApp.Workspace.GetFileStatusTracker(); ThreadPool.QueueUserWorkItem(delegate { try { NGit.Api.MergeCommandResult result; using (var gm = new GitMonitor(monitor)) result = stashes.Pop(gm); GitService.ReportStashResult(monitor, result); } catch (Exception ex) { MessageService.ShowException(ex); } finally { monitor.Dispose(); statusTracker.NotifyChanges(); } }); }
protected override void Run() { var monitor = new MessageDialogProgressMonitor(true, false, false, true); var statusTracker = IdeApp.Workspace.GetFileStatusTracker(); ThreadPool.QueueUserWorkItem(delegate { try { GitService.ReportStashResult(Repository.PopStash(monitor, 0)); } catch (Exception ex) { MessageService.ShowError(GettextCatalog.GetString("Stash operation failed"), ex); } finally { monitor.Dispose(); statusTracker.Dispose(); } }); }
protected override void Run() { var monitor = new MessageDialogProgressMonitor(true, false, false, true); FileService.FreezeEvents(); ThreadPool.QueueUserWorkItem(delegate { try { GitService.ReportStashResult(Repository.PopStash(monitor, 0)); } catch (Exception ex) { MessageService.ShowError(GettextCatalog.GetString("Stash operation failed"), ex); } finally { monitor.Dispose(); Runtime.RunInMainThread(delegate { FileService.ThawEvents(); }); } }); }