小编Cor*_*rin的帖子

如何将项目添加到队列的前面?

我正在创建一个Windows服务,它使用FileSystemWatcher监视特定文件夹以添加特定文件类型.由于Created事件与文件实际准备好被操作之间的差距,我创建了一个Queue<T>来保存需要处理的文件名.在Created事件处理程序中,该项目将添加到队列中.然后使用计时器,我定期从队列中抓取第一个项目并进行处理.如果处理失败,则将项目添加回队列,以便服务稍后可以重试处理.

这工作正常,但我发现它有一个副作用:新项目的第一次处理尝试不会发生,直到所有旧的重试项目都被重试.由于队列可能包含许多项目,因此我想将新项目强制到队列的前面,以便首先处理它们.但是从Queue<T>文档中,没有明显的方法将项添加到队列的前面.

我想我可以为新项创建第二个队列,并优先处理一个,但是单个队列似乎更简单.

那么有一种简单的方法可以将项目添加到队列的前面吗?

c#

14
推荐指数
5
解决办法
2万
查看次数

标签 统计

c# ×1