Forum: PC-Programmierung OOP - .NET - Frage


von Michael M. (Gast)


Lesenswert?

Hallo!

Bisher habe ich "C"-Programmierung (Mikrocontroller) gemacht. Windows
und objektorientierte Programmierung ist noch ungewohnt. Umgebung:
Visual C# 2005 Express.

Eine Anwendung soll via RS232 mit einem µC kommunizieren. Nun sind z.B.
Konfigurationsbytes zu versenden (z.B. bei Druck auf Button_1) und
Datenbytes zu empfangen/abzuspeichern (z.B. bei Druck auf Button_2).

Testweise habe ich das mittels "SerialPort mPort = new
SerialPort();...usw..." in den entsprechenden
button_click()-Funktionen erledigt. Nur scheint mir das irgendwie
unelegant, jedesmal ein Objekt SerialPort zu intanziieren, das
ms-später mit close() arbeitslos wird. Wird doch eh immer ein und
derselbe Port verwendet...der nun aber in x-Instanzen auf Garbage
Collection wartet?!

Suche einen Ansatz, wie man soetwas besser angehen könnte

Thx - Micha

von sackgesicht (Gast)


Lesenswert?

Entweder den SerialPort beim Erzeugen der Form instanzieren und beim
Löschen der Form wieder entfernen, oder zwei extra Buttons dafür
spendieren.

Ich kenne Visual C# 2005 Express zwar (noch) nicht, aber FormCreate-
und FormTerminate-Ereignisse (o. ä.) sollte es da auch geben.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

oder gleich eine Klasse aus rum um die Kommunikation. Diese hat dann
nur noch die Schnittstellen openCom, closeCom, sendCommand und
getCommand. Und in dieser Klasse schiebt man dann noch gleich einen
Thread an....

Matthias

von Michael M. (Gast)


Lesenswert?

Hallo Matthias u. sackgesicht,

beides kombiniert scheint mir geeignet. Ne Klasse, die mir die
Kommunikation mundgerecht abwickelt und die beim Erzeugen der Form
einmalig instanziiert wird.

Extra Thread wird nicht nötig sein, so wie ich das verstehe.
Konfigbytes sind es nur ein paar-->in ms erledigt und solange ein
längerdauernde Datentransfer läuft, kann man eh nicht sinnvoll anderes
"klicken" (außer Button_abbrechen betätigen).

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.