Быстрая и лучшая техника очереди производителей / потребителей 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... очевидно, вы пока не можете их использовать, но не повредит знать, что произойдет.