首页 新闻 搜索 专区 学院

C#线程处理队列

0
悬赏园豆:20 [已关闭问题] 关闭于 2017-07-12 10:46

两个先出处理队列数据,这样写有什么问题吗?请大神们多指教。

C#
依然照旧的主页 依然照旧 | 初学一级 | 园豆:136
提问于:2017-07-04 10:51
< >
分享
所有回答(2)
0

为什么出队列时上来就休息10秒钟,不是应该没有消息时才会休息吗?

~扎克伯格 | 园豆:1837 (小虾三级) | 2017-07-04 11:05

程序每天执行一次,刚开始队列中没有数据,所以先让休息10s中,期间队列就会有数据入队的操作,

然后线程才开始工作,

其实:var str = RedisHelper.BlockingDequeue(EnqueueName, new TimeSpan(0, 0, 0, 120));

这句也是如果队列中没有数据,也会有阻塞时间120s,

休息10s中要不要都行

支持(0) 反对(0) 依然照旧 | 园豆:136 (初学一级) | 2017-07-04 11:11
0

有问题,这里是顺序执行逻辑,没有多线程的必要。

而且你这里有问题,入队列的时间是未知的,sleep 10S等待不一定合适。

如果一定要这么写的话,建议用信号量

hahanonym | 园豆:1460 (小虾三级) | 2017-07-04 13:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册