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());
}
开始时想将每个节点信息入队,然后在将每个节点出队。。
但是悲剧的是,偶发现,每次入队时是不同的Node信息,出队时却是一样的Node。
我怀疑是因为所有节点的地址是一样的,最后将之前入队的节点信息都给改了。
希望哪位高手帮忙解决下。
采用clone()函数可以解决。