在 C# 中跳到队列的特定元素(对于在 System.Collections 中定义的类 Queue),而不使用 for

本文关键字:Queue for 定义 Collections 队列 元素 System | 更新日期: 2023-09-27 17:57:25

我正在使用队列来存储我定义的类的成员。经过特定的固定时间间隔后,我需要评估是否有对象添加到队列中,如果已添加它们,则处理它们以获得所需的信号。

现在,我不希望每次都使用 foreach 循环,因为它会遍历队列的每个成员。我只是想要一种方法来跳到上次处理的元素,这样我就可以处理新的信息。

队列确实被取消排队,但只有在它达到固定的,比如 200 个元素之后。所以最后 200 个元素被保留

有什么好方法可以在没有foreach/enumerator的情况下做到这一点

我使用一个线程进行排队/取消排队,另一个线程用于处理信息。在达到 200 个元素后,它会在队列中保持该计数。我可以使用 foreach,但我想通过跳到之前直接处理的元素来节省一些处理

在 C# 中跳到队列的特定元素(对于在 System.Collections 中定义的类 Queue),而不使用 for

一种方法是使用队列作为队列 - 取消排队和处理。如果您需要存储"已处理的项目" - 只需将它们放入另一个队列/列表/任何内容中即可。

如果您需要适当的多线程访问(基于"锁定"标签) - 请使用ConcurrentQueue。