Funktion kontinuierlich aufrufen ???



  • Gibt es eine Mölichkeit eine Funktion kontinuierlich aufzurufen? Ich habe eine Funktion, die mir (mit Hilfe einer Callback-Funktion) Daten, bei deren Änderung, aus einem externen Programm zurückliefert.
    Über einem Timer funktioniert die ganze Geschichte...



  • ich versteh Dein Problem nicht....



  • Ganz einfach gefragt: Gibt es im C++ Builder die Möglichkeit eine Funktion ohne Timer kontinuierlich zu durchlaufen?
    So wie in einer Konsolenanwendung, wo ich unter "void main()" meine Funktionen aufrufen kann.



  • Natürlich gibt es die... aber damit blockierst du dein gesamtes Programm, ist also nicht besonders sinnvoll... Wenn du die Daten im Polling abrufen willst mach nen eigenen Thread dafür. Oder nimm halt den Timer...



  • Habe die Sache mit dem Thread schon versucht, habe allerdings den Eindruck, daß dieser nur einmal durchlaufen wird.
    Möglicherweise fehlt mir aber zum Thema Threads evtl. das nötige Hintergrundwissen.



  • Original erstellt von etechniker:
    Natürlich gibt es die... aber damit blockierst du dein gesamtes Program

    Nö, nicht zwingend. Sagen wir, deine Funktion heißt "ZiehDieDatenRanMan()". Dann geht das z.B. so:

    while(MyCheckBox->Checked)
    {
       ZiehDieDatenRanMan();
       Application->ProcessMessages();
    }
    

    Ja. Genau. Is aber nicht so schön. Threads sind da besser.



  • Im Execute des Thread muss 'ne ENDLOSSchleife laufen!!!

    In dieser muss getestet werden (Terminated==true)
    wenn ja Schleife ABBRECHEN!!!

    Abbruch auch nach beliebig vielen Durchlaeufen moeglich (musste programmieren;

    Von AUSSEN kann Thread mit Methode Terminat() beendet werden
    : das setzt Terminated auf true, darauf MUSS Execute reagieren!!!(so programmiert sein)

    [ Dieser Beitrag wurde am 26.02.2003 um 22:18 Uhr von DerAltenburger editiert. ]



  • Hm, werd's morgen mal probieren. Erst mal danke an alle.


Anmelden zum Antworten