Pregunta

Parece que no puedo encontrar un hilo de .NET Safe / Concurrent Recopile que admite una función de eliminación simple () donde puedo eliminar un elemento específico o pasar en un predicado para eliminar los elementos en función de eso.Lo he intentado:

BlockingCollection<T>
ConcurrentQueue<T>
ConcurrentStack<T>
ConcurrentBag<T>

¿Alguien sabe de una colección que apoya este comportamiento, o tengo que crear mi propia?

Quiero poder aprovechar el siguiente elemento de una cola de shot-safe sin eliminándola, y más tarde si se cumple una condición determinada, continúe con la eliminación de ella.

¿Fue útil?

Solución

Have you tried ConcurrentDictionary? It has a TryRemove method, so if you think of the key as a predicate, then you will be removing the correct item.

Otros consejos

Are you sure ConcurrentQueue<T> doesn't suit your needs? It has a TryPeek method and a TryDequeue method that do exactly what you describe in the last paragraph.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top