Je veux limiter la taille de BlockingCollection. Si je veux ajouter un autre élément et que la collection est pleine, la plus ancienne doit être supprimée. Y at-il une classe spécifique à cette tâche ou ma solution est ok?Comment limiter la taille de BlockingCollection tout en continuant à ajouter de nouveaux Itens (FIFO de taille limitée .NET)?
BlockingCollection<string> collection = new BlockingCollection<string>(10);
string newString = "";
//Not an elegant solution?
if (collection.Count == collection.BoundedCapacity)
{
string dummy;
collection.TryTake(out dummy);
}
collection.Add(newString);
EDIT1: question similaire ici: ThreadSafe FIFO List with Automatic Size Limit Management
Ce n'est plus une collection thread-safe, ce qui sera supprimé est entièrement imprévisible. Les charlots ressemblent à un cache, consultez la classe MemoryCache. –
Qu'est-ce que vous voulez accomplir? Pouvez-vous simplement jeter l'objet retiré sans rien faire avec? –
@Hans Passant, hé! Vous êtes partout! :) Je ne comprends pas pourquoi il n'est plus sûr de filetage ... – Pedro77