Domanda

Non riesco a trovare un file .NET Thread Safe / Concurrent Raccogliere che supporta una semplice funzione Rimuovi () in cui posso rimuovere un elemento specifico o passare in un predicato per rimuovere gli oggetti in base a quello.Ho provato:

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

Qualcuno conosce una collezione che supporta questo comportamento, o devo crearne il mio?

Voglio essere in grado di afferrare l'elemento successivo da una coda di cabina thread senza rimuoverlo, e successivamente se viene soddisfatta una determinata condizione, procedere con la rimozione.

È stato utile?

Soluzione

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.

Altri suggerimenti

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top