2009-07-14 2 views
1

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

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

+0

Язык? Фреймворк? – AnthonyWJones

ответ

4

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

6

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

0

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

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

Смежные вопросы