当前位置: 首页 > news >正文

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("***************************************");
}
}
}
http://www.rkmt.cn/news/9855.html

相关文章:

  • 23
  • Automatically Naming the Screenshots to Steam
  • 穷举法(c语言版)
  • 详细介绍:深入理解Kafka事务
  • Python - GaussDB table sync to Hive
  • 很烦不知道 自己以后要做什么,工作不会很稳定。感觉有很多东西要学习 但是 也有很多东西 不会 不知道咋办了
  • 揭秘“牛牛透视”
  • 从 Web 到 LLM,多入口、多链路的自动化威胁如何防护? - 详解
  • 【mysql】mysql5.6 版本修改用户的登录
  • 0.5*8 边形 != 式
  • [Paper Reading] METAGPT: META PROGRAMMING FOR A MULTI-AGENT COLLABORATIVE FRAMEWORK
  • 四舍六入五成双
  • 借助 Apache Phoenix,使用标准 SQL 和 JDBC 接口来操作 HBase
  • 9月22日
  • 20250922
  • 基于springboot的图书进销存管理系统 - 详解
  • react+antdesign达成后台管理系统面包屑
  • 详细介绍:深入理解 JVM 字节码文件:从组成结构到 Arthas 工具实践
  • (1-10-2)MyBatis 进阶篇 - 教程
  • Spark 性能优化全攻略:内存管理、shuffle 优化与参数调优 - 详解
  • 如何隐藏一个元素
  • 软工9.22
  • 在控制台执行可列出所有placeholder样式
  • 对于一门古老东欧玄学的初步研究的简要报告
  • Java学习笔记:从三个实验看编程思维的锤炼
  • 完整教程:App 上架平台全解析,iOS 应用发布流程、苹果 App Store 审核步骤
  • 题解:AT_arc068_d [ARC068F] Solitaire
  • Codeforces Round 1051 (Div. 2) D1D2题解
  • 深入解析:基于 Kubernetes 的湖仓一体架构部署指南
  • 完整教程:真空发生器的工作原理