Button drücken während Programm läuft

H2SO4

Grünschnabel
hy, folgendes.
Bin dabei ein Programm zu schreiben. Es gibt hierbei zwei buttons. der start und der stop button. Der startbutton soll seine arbeit in einer endlosschleife erledigen (klappt gut) der Stop button soll diese endlosschleife beenden.
Gemacht habe ich es indem ich durch den startbutton läuft auf true gesetzt habe und die while schleife solange läuft wie läuft auf true ist. Durch drücken des stop buttons setze ich läuft auf false. Jedoch kann ich den stop button nicht drücken während das programm durch drücken des startbuttons läuft. Hat jemand ne idee wie ich trotz laufendem programm den stop button drücken kann und so die schleife abbrechen?

H2SO4
 
Das Zauberwort heißt DoEvents. Mit diesem Befehl gibts du deinem Programm die Zeit, auch andere Tasks abzuarbeiten, dazu gehört ua die Bildschirmaktualisierung, das Erkennen von Klicks usw.

Einfach das DoEvents irgendwo in deine Schleife einbauen (wenn du was ausgibst wärs danach interessant, wenn du eine Eingabe erwartest ist es besser vor der Auswertung).


Der Doc!
 
mh, probiere es dann mal damit.
könnte ich damit auch folgendes Problem lösen?
möchte einen Grafen zeichnen. Im Moment wird er am ende komplett gezeichnet. An sich soll er aber punkt für punkt gezeichnet werden. Also jedesmal wenn ein neuer y-Wert kommt soll der Graph neu gezeichnet werden, so das man sieht wie er sich aufbaut und nicht bis zum ende der messung warten muss.
 
super das mit den doevents klappt, hatte die zwar schon vorher drinne, allerdings nicht dafür und an ganz anderen stellen.

Jetzt nur noch die Frage mit der Grafik, Da ne idee?
 
Auch der Graphik muss mit DoEvents die Möglichkeit gegeben werden, sich bei jedem Punkt aufzubauen. Zusätzlich musst du die AutoRedraw-Eigenschaft der PictureBox auf True stellen, damit die Graphik auch sichtbar aktualisiert wird.


Der Doc!
 
das mit dem Grafen aufbauen hatte wohl schon immer geklappt, nur war die Datenübertragung und dagegen das schreiben und lesen in die datenbank nicht aufeinander abgestimmt. Deshalb schaffte es der pc einfach nicht die Grafik immer neu aufzubauen. Bei einer verminderten Datenrate ging es dann.
 
Zurück