Technique de file d'attente rapide et meilleur producteur / consommateur BlockingCollection vs file d'attente simultanée [fermée

StackOverflow https://stackoverflow.com/questions/5001003

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..

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top