Forum: PC-Programmierung Visual C++ .Net2010 Hintergrundprozess


von Christian (Gast)


Lesenswert?

Hallo,
mein Programm liehst von bis zu 8 Geräten Daten über die RS232 
Schnittstelle aus. Dazu wird erst ein Befehl gesendet, welche Daten 
abgefragt werden sollen und anschließend die entsprechenden Daten 
empfangen.

Während der Abfrage der Werte bleibt die Benutzeroberfläche
ganz schön hängen. Das nervt.

Ich suche jetzt nach einer Möglichkeit das Abfragen der Werte
irgendwie im Hintergrund laufen zu lassen.

Mit Visual Basic habe ich das schon mal gemacht, aber mit C++ bin ich da 
etz leicht überfordert.
Kann mir da jemand ein paar Tipps geben wie ich vorgehe?

von Christian (Gast)


Lesenswert?

Hab grad was mit Backgroundworker gefunden, das müsste das sein wonach 
ich suche.

von Peter II (Gast)


Lesenswert?

Christian schrieb:
> Hab grad was mit Backgroundworker gefunden, das müsste das sein wonach
> ich suche.

oder allgemein Threads. der Backgroundworker ist auch nur ein Thread mit 
ein paar mehr Methoden.

Was jetzt besser für diesen Zweck ist kann ich aber auch nicht sagen, 
selber verwende ich nur Threads.

von Christian (Gast)


Lesenswert?

Ich probiers etz erstmal mit dem Backgroundworker.

Wenn ich doppelklick drauf gehe, dann öffnet sich folgende Sub:
1
private: System::Void backgroundWorker1_DoWork(System::Object^  sender, System::ComponentModel::DoWorkEventArgs^  e) { }
Den Code, den ich da reinschreibe führt der Backgroundworker dann wohl 
aus, nehme ich an.

Aber wie starte ich das Teil jetzt?
Mit
this->backgroundWorker1_DoWork();
wirds nix...

von Peter II (Gast)


Lesenswert?

Christian schrieb:
> Aber wie starte ich das Teil jetzt?

Doku lesen. Bei Threads (auch dem Backgroundworker) muss man wissen was 
man tun. Wie man z.b. auf globale Variabeln zugreift, wie man die gui 
anspricht usw. Es geht nicht alles mit "doppelklick"

http://msdn.microsoft.com/de-de/library/system.componentmodel.backgroundworker.aspx

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.