Technique de file d'attente rapide et meilleur producteur / consommateur BlockingCollection vs file d'attente simultanée [fermée
-
14-11-2019 - |
Question
Je suis en utilisant générique.Queue en C # 3.0 et moniteur.enter, attendez, sortez pour attendre avant de consommer la file d'attente (attendez que l'élément soit en cours). Maintenant, je passe à C # 4.
Quelqu'un peut-il me suggérer lequel est rapide et le meilleur surtout pour éviter les verrous.
BlockingCollection vs concurrentQueue ou autre chose ...
Noter. Je ne veux pas restreindre mon producteur
Merci d'avance..
La solution
BlockingCollection
et ConcurrentQueue
sont là pour précisément cette raison. Je doute que vous trouverez quelque chose de mieux ou plus simple à utiliser. L'équipe d'extensions parallèles connaît ses affaires :)
Juste une vérification rapide sur les versions - vous utilisez définitivement .NET 4, pas seulement C # 4? (Par exemple, vous pourriez utiliser Visual Studio 2010 et donc C # 4, mais en ciblant toujours .NET 3.5, auquel cas vous ne pouvez pas utiliser des extensions parallèles.)
Vous pouvez également commencer à rechercher Modèle asynchrone basé sur les tâches, TPL Dataflow et le Caractéristiques asynchrones / attend de C # 5... Évidemment, vous ne pouvez pas les utiliser encore, mais cela ne fait pas de mal de savoir ce qui se passe.