Windows Forms + Threads

NSRKris

Grünschnabel
Hallo zusammen,

ich habe folgendes Problem:

Ich bin momentan dabei ein Programm zu schreiben, das über eine grafische Oberfläche verfügt. Gleichzeitig muss das Programm die Ethernet-Schnittstelle und die serielle Schnittstelle überwachen und ggf. darüber kommunizieren. Das Programm benötigt zum Darstellen von einigen Dialogen Informationen von beiden Schnittstellen.

Nun habe ich überlegt, dass beide Überwachungen idealerweise in einem eigenen Thread laufen, da die Überwachung kontinuierlich und zeitnah erfolgen sollte.

Nun habe ich bis jetzt aber noch nicht viel Erfahrung mit Threads und Windows Forms. Meine Frage ist also, wie ich es realisiert bekomme, dass eine Klasse bzw. ein Objekt die Informationen beider Threads bekommt. Die Frage für mich ist auch, wo ich die beiden Thread-Objekte erstelle und starten kann.

Für die ganze Verwaltung der Daten habe ich bis jetzt ein globales Objekt erstellt, auf das alle Forms zugreifen, wenn Sie Informationen zur Darstellung benötigen. Es wäre natürlich praktisch, wenn das Objekt auch die Threads verwalten würde.


Ich hoffe, dass ich verständlich rüberbringen konnte, was ich meine. Vielen Dank für eure Hilfe!
 
Hallo,

im Zusammenhang mit Forms würde ich die Verwendung der BackgroundWorker-Klasse empfehlen. Der Implementierungsaufwand ist gering und die Interaktion mit der Form funktioniert ohne spezielle Maßnahmen (sonst Control.Invoke) über verschiedene Events. Die Erzeugung kann beim Programmstart, etwa im Kontruktor oder Load-Event des Hauptfensters erfolgen.
Ob deine globale Daten-Klasse auch für die Verwaltung der Thread-Daten geeignet ist, kann ich nicht beurteilen. Die Überwachung von externen Schnittstellen ist in der Regel ereignisbasiert und diese Events müsste die globale Klasse auch an die jeweilige Form weiterreichen.

Gruß
MCoder
 
Zurück