public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace) { DateTime lastUpdate = DateTime.Now; documentWorkspace.History.BeginStepGroup(); using (new WaitCursorChanger(documentWorkspace)) { documentWorkspace.SuspendToolCursorChanges(); while (documentWorkspace.History.UndoStack.Count > 1) { documentWorkspace.History.StepBackward(); if ((DateTime.Now - lastUpdate).TotalMilliseconds >= 500) { documentWorkspace.History.EndStepGroup(); documentWorkspace.Update(); lastUpdate = DateTime.Now; documentWorkspace.History.BeginStepGroup(); } } documentWorkspace.ResumeToolCursorChanges(); } documentWorkspace.History.EndStepGroup(); Utility.GCFullCollect(); documentWorkspace.Document.Invalidate(); documentWorkspace.Update(); return(null); }
public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace) { DateTime lastUpdate = DateTime.Now; documentWorkspace.History.BeginStepGroup(); using (new WaitCursorChanger(documentWorkspace)) { documentWorkspace.SuspendToolCursorChanges(); while (documentWorkspace.History.RedoStack.Count > 0) { documentWorkspace.History.StepForward(); if ((DateTime.Now - lastUpdate).TotalMilliseconds >= 500) { documentWorkspace.History.EndStepGroup(); documentWorkspace.Update(); lastUpdate = DateTime.Now; documentWorkspace.History.BeginStepGroup(); } } documentWorkspace.ResumeToolCursorChanges(); } documentWorkspace.History.EndStepGroup(); Utility.GCFullCollect(); documentWorkspace.Document.Invalidate(); documentWorkspace.Update(); return null; }
public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace) { DateTime utcNow = DateTime.UtcNow; documentWorkspace.History.BeginStepGroup(); using (new WaitCursorChanger(documentWorkspace)) { documentWorkspace.SuspendToolCursorChanges(); while (documentWorkspace.History.UndoStack.Count > 1) { documentWorkspace.History.StepBackward(documentWorkspace); CleanupManager.RequestCleanup(); TimeSpan span = (TimeSpan)(DateTime.UtcNow - utcNow); if (span.TotalMilliseconds >= 500.0) { documentWorkspace.History.EndStepGroup(); documentWorkspace.QueueUpdate(); utcNow = DateTime.UtcNow; documentWorkspace.History.BeginStepGroup(); } } documentWorkspace.ResumeToolCursorChanges(); } documentWorkspace.History.EndStepGroup(); CleanupManager.RequestCleanup(); documentWorkspace.Document.Invalidate(); documentWorkspace.QueueUpdate(); return(null); }