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

时间:2014-04-08 23:33:45

标签: c# enumerator

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

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

队列确实已经出列,但只有在达到固定的200个元素之后才会出现。 所以保留最后200个元素

没有foreach / enumerator

这是一个很好的方法

我使用一个线程进行排队/出队,另一个用于处理信息。在获得200个元素后,它会在队列中保留该计数。 我可以使用foreach,但我想通过跳转到之前直接处理的元素来保存自己的一些处理

1 个答案:

答案 0 :(得分:0)

一种方法是使用队列作为队列 - 出队和处理。如果你需要存储“已处理的项目” - 只需将它们放入另一个队列/列表/无论如何。

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