MSMQ для управления потоками? - PullRequest
1 голос
/ 14 июля 2009

Я создаю приложение, в котором у меня есть входные данные от принтеров по сети (через определенные порты) и другие файлы, которые создаются в папке локально или через сеть. Пользователь может создавать разные потоки для одновременного мониторинга разных папок, а также потоки для обработки ввода от трех принтеров по сети. Приложение должно обрабатывать входные данные в соответствии с их типом и выводить их. На другом конце приложения будет 4 потока, ожидающих обработки входных данных из потоков ввода (может быть 10 или 20 потоков) и применения 4 различных задач. Поскольку у нас одновременно будет много потоков, я подумал, что буду использовать MSMQ для управления этими потоками. Подходит ли использование MSMQ в этом сценарии или я должен использовать другую технику? Управление этими потоками с точки зрения планирования, расстановки приоритетов и т. Д.

(П.С .: Я думал о создании собственного класса ThreadEngine, который будет заботиться обо всех этих вещах, пока не услышал о MSMQ, который до сих пор не уверен, правильно ли это использовать)

Ответы [ 3 ]

6 голосов
/ 14 июля 2009

MSMQ будет полезен для управления данными ввода / вывода, а не для ваших потоков. .Net уже имеет ThreadPool , CCR и TPL , чтобы помочь вам с параллелизмом и многопоточностью, поэтому я бы посоветовал ознакомиться с этими технологиями и выбрать наиболее соответствующий.

4 голосов
/ 14 июля 2009

MSMQ - это системная очередь сообщений, а не диспетчер пула потоков.

0 голосов
/ 24 октября 2012

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

Если вы ищете производительность, то я согласен с другими людьми и настоятельно не рекомендую вам это делать - даже с недолговечными (очереди оперативной памяти).

...