void GoToNextBreakPoint(HdDateTime destinationTime) { if (needPop) { memoryManager.Delete(breakPoints.Pop().Value); } if (breakPoints.Count == 0) { needPop = false; return; } BreakPoint breakPoint = breakPoints.Peek.Value; if (breakPoint.Time > destinationTime) { needPop = false; return; } needPop = true; long numberOfMessage = breakPoint.NumberOfMessage; CurrentTime = breakPoint.Time; int key = (int)breakPoint.Key; breakPoint.BreakPointAction(CurrentTime, breakPoint.CustomData); }