Быстрая и лучшая техника очереди производителей / потребителей BlockingCollection vs одновременная очередь

Я использую Generic.Queue в C# 3.0 и Monitor.Enter, подождите, выйдите для ожидания, прежде чем использовать очередь (дождитесь, пока элемент будет поставлен в очередь). Сейчас я переезжаю в C# 4.

Может кто-нибудь предложить мне, какой из них является быстрым и лучше всего, особенно, чтобы избежать замков..

BlockingCollection vs concurrentQueue или любая другая вещь...

Заметка. Я не хочу ограничивать моего производителя

Заранее спасибо..

1 ответ

Решение

BlockingCollection а также ConcurrentQueue есть именно по этой причине. Я сомневаюсь, что вы найдете что-нибудь лучше или проще в использовании. Команда параллельных расширений знает свое дело:)

Просто быстрая проверка версий - вы определенно используете.NET 4, а не только C# 4? (Например, вы можете использовать Visual Studio 2010 и, следовательно, C# 4, но по-прежнему ориентироваться на.NET 3.5, и в этом случае вы не можете использовать Parallel Extensions.)

Возможно, вы также захотите начать исследование асинхронного шаблона на основе задач, потока данных TPL и возможностей асинхронного / ожидающего выполнения в C# 5... очевидно, вы пока не можете их использовать, но не повредит знать, что произойдет.

Другие вопросы по тегам