C# Queue队列
目录
- 前言
- 一、队列的新建
- 二、入队
- 三、出队
- 四、清除队列
前言
我们在处理数据接收或发送的时,为避免数据量较多出现顺序混乱或是多线程共享内存造成数据覆盖问题, 经常需要对数据处理做到先进先出(FIFO)。于是我们经常要队列(Queue),顾名思义也就是和平时排队一样,一个一个的处理,遵循先来后到,不插队,不优先。
在C#中,队列封装的很好,使用起来也很方便。它属于系统类的集合(Collection)类中。
一、队列的新建
同其它的类一样,new一下就可以了。注意文件头要加引用Collection。
using System.Collections;
...
Queue q = new Queue();
二、入队
public virtual void Enqueue(object obj)
是入队的函数定义声明可以看到参数是object 类型,也就是基类,所以其它类型都是可以使用的。下面的例子就是以byte数组作为数据实例。
byte[] RxBuf = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };//队列加入一个RxBuf字节数组q.Enqueue(RxBuf);
三、出队
public virtual object Dequeue()
是出队的函数定义声明,返回参数是object 类型,与入队一样,也就是说我们需要做一次强制转换。Count属性就是判断队列中的元素数量。简单理解也就是指还有几个人在排队,没有人排队就不处理了。
//判断队列中元素数量if (q.Count > 0){ byte[] rxData = (byte[]) q.Dequeue();}
四、清除队列
public virtual void Clear()
是清除的函数定义声明,下面语句是从q队列中移除所有的对象元素。
//队列清除q.Clear();
C# Queue队列相关推荐
- python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...
python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...
- python 进程间通信效率_Python进程间通信 multiProcessing Queue队列实现详解
一.进程间通信 IPC(Inter-Process Communication) IPC机制:实现进程之间通讯 管道:pipe 基于共享的内存空间 队列:pipe+锁的概念--->queue 二 ...
- 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )
文章目录 queue 队列 stack 栈 priority_queue 优先级队列 priority_queue 优先级队列指定排序方法 priority_queue 优先级队列排序行为 prior ...
- java集合类——Stack栈类与Queue队列
今日走读代码时,遇到stack栈类,特查看java的API文档,总结如下: Stack继承Vector类,它通过五个操作对类 Vector 进行了扩展. 栈是 后进先出的. 栈提供了通常的 push ...
- 在laravel5 中使用queue队列
如何在laravel5 中使用queue队列 Laravel Queue是延迟处理应用程序中耗时任务的有效方法.此类任务的示例可能包括每当新用户在您的应用程序中注册或通过社交媒体分享帖子时发送验证电子 ...
- C语言实现queue队列的算法(附完整源码)
C语言实现queue队列的算法 C语言实现queue队列的算法完整源码(定义,实现,main函数测试) C语言实现queue队列的算法完整源码(定义,实现,main函数测试) #ifndef QUEU ...
- java中的Queue队列的用法
大家好,欢迎来到雄雄的小课堂,今天给大家分享的是"java中的Queue队列的用法" 前言:好多人对Queue不是很熟悉,毕竟平时也不怎么用,遇到集合要么List要么map这些常用 ...
- Java—Queue队列详解(Deque/PriorityQueue/Deque/ArrayDeque/LinkedList)
Queue Queue队列介绍 Queue是用于模拟队列的,啥叫队列?队列就是排队的意思,比如排队结账,先进入队伍中,先排到先付账走人:后排到的,进入队伍,等前面的人出队伍后,再跟在后面付钱出队. ...
- C/C++ queue队列的理解以及使用
哈喽!这里是一只派大鑫,不是派大星.本着基础不牢,地动山摇的学习态度,从基础的C语言语法讲到算法再到更高级的语法及框架的学习.更好地让同样热爱编程(或是应付期末考试 狗头.jpg)的大家能够在学习阶段 ...
- C#基础---Queue(队列)的应用
Queue队列,特性先进先出. 在一些项目中我们会遇到对一些数据的Check,如果数据不符合条件将会把不通过的信息返回到界面.但是对于有的数据可能会Check很多条件,如果一个数据一旦很多条件不 ...
最新文章
- 15 -Flask构建弹幕微电影网站-基于角色的访问控制
- 0.爬虫 urlib库讲解 urlopen()与Request()
- 《C和指针》读书笔记第二章基本概念
- ps里面怎么插入流程图_photoshop cs6绘画带箭头简单流程图的操作步骤介绍
- linux下软件的基本安装和卸载 法一
- 什么是Python脚本?
- Acwing 240食物链(带权并查集)
- mysql字符集修改保存_mysql更改已有数据表的字符集,保留原有数据内容
- lambda函数以及对 items.sort(key = lambda y:y[1], reverse = True) 的理解。
- python复杂网络库networkx:基础
- 力扣-747 至少是其他数字两倍的最大数
- c/c++中关于sizeof、strlen的使用说明
- JSFinder自动化脚本一键批量处理URL(附自动执行脚本带whatweb筛选)
- Android Camera 测光梳理
- Python爬虫实战:爬取拉勾网并对其进行数据分析
- java语言编译系统_请问C语言,JAVA之类的语言编译程序是属于 系统软件 还是 应用软件??...
- apple tv 开发_如何在Apple TV上管理您的订阅
- [CLR团队公告]CLR基础研究团队:精品系列推广活动启动
- 工作一到五年的Java程序员该如何提升自己?
- IMG按图搜索商品详情
热门文章
- 编制计算机程序解决问题的5个步骤,4.1.4剖析编制计算机程序解决问题的过程
- 游戏开发jenkins杂谈系列:windows系统下修改系统时间触发Build periodically设置的定时任务,往前调时间但不再执行定时任务的解决办法
- 国内app快速生成平台对比
- 第三课向量与平面直线方程
- node.js项目中的package.json
- 常用Linux Shell命令
- yolov5 CUDA out of memory
- [USACO4.1]麦香牛块Beef McNuggets 题解报告
- java console清屏_JAVA 控制台清屏 | 学步园
- 如何解决Keil报错error: #411: a parameter is not allowed ...