我写了个队列,系统一直不停的进和出队列,我的内存不断的在涨,我该怎么办呀? TCAQueue = class
    private
      FQueCount: integer;
      FCAQueue: TLinkedQuetp;
      procedure Ini_LinkedQue();
    public
      procedure Push(D: TSendDataRecord);
      function Pop(): TSendDataRecord;
      constructor create();
      destructor  Destroy(); override;
      property Count: integer read FQueCount;
  end;{ TCAQueue }constructor TCAQueue.create;
begin
  FQueCount := 0;
  Ini_LinkedQue;
end;destructor TCAQueue.Destroy;
var S: pQueueNode;
begin
  while FCAQueue.rear <> FCAQueue.front do
  begin
    S := FCAQueue.front^.next;
    FCAQueue.front^.next := S^.next;
    if S^.next = nil then FCAQueue.rear := FCAQueue.front;
    dispose(S);
    S := nil;
    Dec(FQueCount);
  end;
  dispose(FCAQueue.front);
  FCAQueue.front := nil;
  inherited;
end;procedure TCAQueue.Ini_LinkedQue;
begin
  new(FCAQueue.front);
  FCAQueue.rear := FCAQueue.front;
  FCAQueue.front^.next := nil;
end;function TCAQueue.Pop: TSendDataRecord;
var S: pQueueNode;
begin
  if FCAQueue.front = FCAQueue.rear then Result.SendDataLength := 0
  else
  begin
    S := FCAQueue.front^.next;
    FCAQueue.front^.next := S^.next;
    if S^.next = nil then FCAQueue.rear := FCAQueue.front;
    Result := S^.Data;
    dispose(S);
    S := nil;
    Dec(FQueCount);
  end;
end;procedure TCAQueue.Push(D: TSendDataRecord);
var P: pQueueNode;
begin
  new(P);
  p^.Data := D;
  P^.next := nil;
  FCAQueue.rear^.next := P;
  FCAQueue.rear := P;
  Inc(FQueCount);
end;