【问题标题】:MSMQ for Managing Threads?用于管理线程的 MSMQ?
【发布时间】:2010-11-10 17:48:17
【问题描述】:

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

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

【问题讨论】:

    标签: multithreading msmq


    【解决方案1】:

    MSMQ 将有助于管理您的输入/输出数据而不是您的线程。 .Net 已经有 ThreadPoolCCRTPL 来帮助您处理并发和多线程,因此我建议您阅读这些技术并选择最合适的技术。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        这可能会很有趣,因为您并不介意性能不佳,并且确实希望使用一个任务是持久的和事务性的以保证执行的系统。

        如果您正在寻找性能,那么我同意其他人的观点,并且强烈建议您不要这样做 - 即使是非耐用(ram 队列)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-16
          • 2010-10-22
          • 1970-01-01
          • 2011-02-15
          • 2013-04-24
          • 1970-01-01
          • 2011-08-02
          相关资源
          最近更新 更多