private void OnTimedEvent(object source,ElapsedEventArgs e)
        {
            CheckAndOverBlock();
            Down();
            #region[Input the Information]
           // recordInfo.(runBlock, readyBlock);
            Block run = new Block();
            Block ready = new Block();
            run = runBlock;
            ready = readyBlock;
            recordInfo.temp = new Node(run, ready);
            
            recordInfo.queue.Enqueue(recordInfo.temp);
            Console.WriteLine("push "+runBlock.YPos.ToString());
            #endregion
        }。        private void OnTimedEventReplay(object source, ElapsedEventArgs e)
        {
            runBlock = (recordInfo.queue.Dequeue()).runBlock;
            
            runBlock.Paint(draw);
            //runBlock.erase(draw);
            if (recordInfo.queue.Count <= 0)
            {
                timer.Close();
                draw.Dispose();
                tip.Dispose();
            }
            Console.WriteLine("11" + runBlock.YPos.ToString() + "  " + recordInfo.queue.Count.ToString());
        }

解决方案 »

  1.   

    如上图的代码所示
    开始时想将每个节点信息入队,然后在将每个节点出队。。
    但是悲剧的是,偶发现,每次入队时是不同的Node信息,出队时却是一样的Node。
    我怀疑是因为所有节点的地址是一样的,最后将之前入队的节点信息都给改了。
    希望哪位高手帮忙解决下。
      

  2.   

    出错原因果然是因为  地址问题。。
    采用clone()函数可以解决。
      

  3.   

    哦,不过,还是有些没懂,估计是没涉及到这块吧,呵呵,对了,你用过ArrayList没有,我发现这个东东只能进,取不出来,郁闷!
      

  4.   

    对了,我也去用用那个克隆方法Clone()
      

  5.   

    嗯  !挺好用的http://http://blog.csdn.net/Betty_Ting/archive/2011/04/14/6324504.aspx  这个是我今天遇到问题的整理  希望对你有帮助!!