C#中 Queue 的简单应用例子
2018-03-06 23:27
417 查看
本例子用于演示C#中队列的处理,当声明一个队列后,开启一个线程监控此队列,当有消息时就立刻传送出去。
以上示例,有两个技术要点需要掌握:
1、队列的写入方法Enqueue和移出方法Dequeue;
2、线程的初始化及线程函数的启用。
Queue的基础知识:
1、Queue定义System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。 2、优点1、能对集合进行顺序处理(先进先出)。2、能接受null值,并且允许重复的元素。 3、 Queue的构造器
4、Queue的属性
5. Queue的方法
using System; using System.Collections; //队列 using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; //线程调用 namespace WindowsApplication3 { public partial class Form1 : Form { //该事例用于演示C#中队列的处理,当声明一个队列后,开启一个线程监控此队列,当有消息时就立刻传送出去 Thread th = null; //用于监控队列,当有消息时就立刻传送出去 Queue queueMsg = new Queue(); //用于存消息的队列 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { th = new Thread(sendMsg); th.Start(); //开始监控队列中的消息,当有消息时就立刻传送出去 } /// <summary> /// 从队列中发送消息 /// </summary> private void sendMsg() { while (true) { if (queueMsg.Count > 0) //如果有消息就立刻传送出去 { string tmp = (string)queueMsg.Dequeue(); //出队 MessageBox.Show(tmp); continue; } Thread.Sleep(1000); } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { th.Abort(); //停止线程 } private void button1_Click(object sender, EventArgs e) { //往队列填入3条消息 for (int i = 1; i <= 3; i++) { queueMsg.Enqueue("消息" + i.ToString()); } } } }运行结果是:点击“向队列填入3条消息”之后,依次弹出三个Messagebox。
以上示例,有两个技术要点需要掌握:
1、队列的写入方法Enqueue和移出方法Dequeue;
2、线程的初始化及线程函数的启用。
Queue的基础知识:
1、Queue定义System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。 2、优点1、能对集合进行顺序处理(先进先出)。2、能接受null值,并且允许重复的元素。 3、 Queue的构造器
构造器函数 | 注释 |
Queue () | 初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。 |
Queue (ICollection) | 初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。 |
Queue (Int32) | 初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用默认增长因子。 |
Queue (Int32, Single) | 初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用指定的增长因子。 |
属性名 | 注释 |
Count | 获取 Queue 中包含的元素数。 |
方法名 | 注释 |
Void Clear() | 从 Queue 中移除所有对象。 |
Bool Contains(object obj) | 确定某元素是否在 Queue 中。 |
Object Clone() | 创建 Queue 的浅表副本。 |
Void CopyTo(Array array,int index) | 从指定数组索引开始将 Queue 元素复制到现有一维 Array 中。 |
Object Dequeue() | 移除并返回位于 Queue 开始处的对象。 |
Void Enqueue(object obj) | 将对象添加到 Queue 的结尾处。 |
Object Peek() | 返回位于 Queue 开始处的对象但不将其移除。 |
Object[]ToArray() | 将 Queue 元素复制到新数组。 |
Void TrimToSize() | 将容量设置为 Queue 中元素的实际数目。 |
相关文章推荐
- C#简单应用spring的例子
- WinForm(C#) DataGridView简单应用示例
- sql 存储过程 几个 简单例子,及在asp.net(C#)中调用存储过程的代码
- C#发送邮件,应用System.Net.Mail例子
- 简单应用OpenCV例子
- c#创建类似Siri的语音问答的简单应用
- C# webservice简单例子
- 分享一个PHP数据流应用的简单例子
- C#.NET中GridView单行编辑的简单例子
- C#学习之LinqtoSql类的简单例子
- C# .NET Remoting 简单应用示例
- C#的枚举转换、应用例子
- C#队列Queue实现一个简单的电商网站秒杀程序
- c#实现虚拟光驱--应用层(简单涉及驱动部分)
- (新手植入有米广告教程)根据官方例子给简单的应用加入有米广告
- 百度地图应用简单例子
- 在C#代码中应用Log4Net(一)简单使用Log4Net
- (C#)使用队列(Queue)解决简单的并发问题
- C# WPF TextBox绑定数据的简单应用
- 学习javascript的闭包特性用C#来实现一个简单的例子