2009-07-14 11 views
1

Ich erstelle eine Anwendung, wo ich Eingaben von Druckern über das Netzwerk (auf bestimmten Ports) und andere Dateien, die in einem Ordner lokal oder über das Netzwerk erstellt werden. Der Benutzer kann verschiedene Threads erstellen, um verschiedene Ordner gleichzeitig zu überwachen, sowie Threads, um die Eingabe von drei Druckern über das Netzwerk zu verarbeiten. Die Anwendung soll die Eingabedaten nach ihrem Typ verarbeiten und ausgeben. Am anderen Ende der Anwendung würden 4 Threads auf Eingabedaten von den Eingabe-Threads warten (10 oder 20 Threads), um 4 verschiedene Aufgaben zu bearbeiten und anzuwenden. Da viele Threads zur gleichen Zeit ausgeführt werden, dachte ich, dass ich MSMQ verwenden würde, um diese Threads zu verwalten. Passt die Verwendung von MSMQ in diesem Szenario oder sollte ich eine andere Technik verwenden? Verwalten dieser Threads in Bezug auf die Planung, Priorisierung, etc.MSMQ zum Verwalten von Threads?

(PS: Ich dachte, meine eigene ThreadEngine-Klasse zu bauen, die sich um all diese Dinge kümmern wird, bis ich von MSMQ gehört, die noch nicht sicher sind, ob es ist das Richtige zu verwenden)

+0

Sprache? Rahmen? – AnthonyWJones

Antwort

4

MSMQ ist eine Systemnachrichtenwarteschlange, kein Threadpoolmanager.

6

MSMQ wäre nützlich für die Verwaltung Ihrer Eingabe/Ausgabe-Daten nicht für Ihre Threads. .Net hat bereits die ThreadPool, die CCR und die TPL, um Sie mit Nebenläufigkeit und Multithreading zu unterstützen, so würde ich vorschlagen, auf diese Technologien zu lesen und die am besten geeignete auszuwählen.

0

Dies könnte in einem Fall interessant sein, in dem es Ihnen nicht wirklich schlecht geht und Sie sich wirklich für ein System entscheiden, bei dem Tasks persistent und transaktional sind, um die Ausführung zu gewährleisten.

Wenn Sie nach Leistung suchen, stimme ich mit anderen Leuten überein und rate Ihnen dringend davon ab - auch mit nicht dauerhaften (Ram Queues).

Verwandte Themen