架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 30984|回复: 7

[资料] c# 封装了一个万能QueueHelper队列

[复制链接]
发表于 2018-8-29 10:39:11 | 显示全部楼层 |阅读模式
在日常开发的时候,我们有可能会用到队列,队列是一种可以实现“先进先出”的存储结构。

应用场景:写日志,发送邮件等

假如,我们需要记录用户每次请求我们数据的接口日志,不需要每次用户请求的时候去写一次日志,我们可以把日志内容放到队列里面,让其他线程去执行,从而不影响应用的效率。

还有一个好处,在并发的情况下把数据添加到队列里面,用单线程去执行队列的数据,可以避免很多异常情况,如果并发(多线程)情况下,访问同一个物理文件会出现异常。(视情况而定)

队列万能方法:

这是一个抽象类,你需要继承这个抽象类,并实现Execute抽象方法。因为不知道你要处理的数据类型是什么,这里用到了泛型,也就是说Entity是string类型,方法参数就是string类型的,你处理的数据就是string类型的数据。

ConcurrentQueue线程安全的队列,保证了在多线程环境下,不会有异常情况。

ManualResetEvent 用来控制线程的信号的东西,以往我们的做法是每隔几秒或者几分钟去检查队列里面是否有数据,现在,我们把数据添加到队列,只需要传递一个信号就可以了!

使用:
QQ截图20180829102440.jpg
(完)




上一篇:Setup Project安裝包製作過程希望複製Primary output檔案疑問
下一篇:关于redis中文无法正常显示的问题
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-5-24 10:13:59 | 显示全部楼层
推荐一个框架:

asp.net后台任务hangfire框架教程
https://www.itsvse.com/thread-7611-1-1.html
(出处: 架构师_程序员)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-9-10 10:26:26 | 显示全部楼层
请问下,为什么我执行的时候,Test类里的Execute方法没有执行到?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-9-10 21:52:44 | 显示全部楼层
hano7758 发表于 2019-9-10 10:26
请问下,为什么我执行的时候,Test类里的Execute方法没有执行到?

能贴出来你的代码吗?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-1-23 11:53:46 | 显示全部楼层
.NET/C# 基于 BlockingCollection 后台任务队列
https://www.itsvse.com/thread-9528-1-1.html

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-7-26 14:09:53 | 显示全部楼层
怎么能 看到代码
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-9-26 22:20:08 | 显示全部楼层
我需要学习怎么使用
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-6-16 22:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表