我正在构建一个应用程序,我通过网络(在特定端口上)从打印机输入以及在本地或通过网络创建到文件夹中的其他文件。用户可以创建不同的线程来同时监视不同的文件夹,以及通过网络处理来自三台打印机的输入的线程。应用程序应根据其类型处理输入数据并输出。在应用程序的另一端,将有4个线程等待来自输入线程(可能是10或20个线程)的输入数据来处理和应用4个不同的任务。 由于我们将同时运行许多线程,我想我会使用MSMQ来管理这些线程。在这种情况下使用MSMQ还是应该使用其他技术?在调度,优先级等方面管理这些线程
(P.S:我正在考虑建立我自己的ThreadEngine类来处理所有这些事情,直到我听说MSMQ,我仍然不确定它是否正确使用)
答案 0 :(得分:6)
MSMQ对于管理输入/输出数据非常有用,不适合您的线程。 .Net已经有ThreadPool,CCR和TPL来帮助你进行并发和多线程处理,所以我建议你阅读这些技术并选择最合适的技术。
答案 1 :(得分:4)
MSMQ是系统消息队列,而不是线程池管理器。
答案 2 :(得分:0)
如果你真的不介意糟糕的性能,并且真正想要一个任务是持久的和事务性的系统来保证执行,那么这可能会很有趣。
如果您正在寻找性能,那么我同意其他人的意见,并强烈反对您这样做 - 即使是非持久性(ram队列)。