C#编程练习:使用队列存储消息,一次性存10条消息,每隔一段时间打印一条消息控制台打印消息时要有明显停顿感 - 详解

一、任务:使用队列存储消息

实现目标:

(1)一次性存10条消息

(2)每隔一段时间打印一条消息控制台打印消息时要有明显停顿感


二、核心代码结构

1. 延时方法

public static void SleepTime(int seconds)
{
for(int i = 0; i < seconds * 100000000; i++) { }
}

2. 消息队列初始化

Queue queue = new Queue();
for (int i = 0; i < 10; i++)
{
queue.Enqueue("哈喽"); // 入队10条消息
}

三、三种遍历方式对比

方法1:foreach遍历(只读)

foreach (object i in queue)
{
Console.WriteLine(i);
SleepTime(10); // 延时效果
}

特点:不修改队列结构

输出:按FIFO顺序输出

队列状态:遍历后队列仍包含10条消息

方法2:ToArray转换后遍历

object[] array1 = queue.ToArray();
for (int i = 0; i < array1.Length; i++)
{
Console.WriteLine(array1[i]);
SleepTime(10);
}

特点:将队列转为数组后遍历

输出:按FIFO顺序输出

队列状态:原队列不受影响

方法3:Dequeue出队遍历(消费型)

while (queue.Count > 0)
{
Console.WriteLine(queue.Dequeue()); // 出队操作
SleepTime(10);
}

特点:边遍历边移除元素

输出:按FIFO顺序输出

队列状态:遍历后队列为空


四、完整代码

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace 进阶测试
{
class Program
{
public static void SleepTime(int seconds)//明显停顿时间
{
for(int i=0;i 0)
{
Console.WriteLine(queue.Dequeue());
SleepTime(10);
}
Console.WriteLine();
Console.WriteLine("***************************************");
}
}
}
posted @ 2025-09-22 21:32  wzzkaifa  阅读(12)  评论(0)    收藏  举报