管理线程的MSMQ?

时间:2009-07-14 17:27:47

标签: multithreading msmq

我正在构建一个应用程序,我通过网络(在特定端口上)从打印机输入以及在本地或通过网络创建到文件夹中的其他文件。用户可以创建不同的线程来同时监视不同的文件夹,以及通过网络处理来自三台打印机的输入的线程。应用程序应根据其类型处理输入数据并输出。在应用程序的另一端,将有4个线程等待来自输入线程(可能是10或20个线程)的输入数据来处理和应用4个不同的任务。 由于我们将同时运行许多线程,我想我会使用MSMQ来管理这些线程。在这种情况下使用MSMQ还是应该使用其他技术?在调度,优先级等方面管理这些线程

(P.S:我正在考虑建立我自己的ThreadEngine类来处理所有这些事情,直到我听说MSMQ,我仍然不确定它是否正确使用)

3 个答案:

答案 0 :(得分:6)

MSMQ对于管理输入/输出数据非常有用,不适合您的线程。 .Net已经有ThreadPoolCCRTPL来帮助你进行并发和多线程处理,所以我建议你阅读这些技术并选择最合适的技术。

答案 1 :(得分:4)

MSMQ是系统消息队列,而不是线程池管理器。

答案 2 :(得分:0)

如果你真的不介意糟糕的性能,并且真正想要一个任务是持久的和事务性的系统来保证执行,那么这可能会很有趣。

如果您正在寻找性能,那么我同意其他人的意见,并强烈反对您这样做 - 即使是非持久性(ram队列)。