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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.