Thread



  • Hallo,

    ich habe eine Anwendung die über die seriellen Schnittstelle mit einem Automaten kommuniziert und Werte von ihm zurückbekommt.

    In einer do-while Schleife die über ein Flag gesteuert wird

    do{
    
    MyMeka.StartBetrieb();
    
    ...
    }while(bMessungLaeuft == TRUE);
    

    wird der über das MyMeka - Objekt der Betrieb des Automaten gestartet.
    Wenn der eine bestimmte Position erreicht hat kehrt er in die Schleife zurück und es werden Messungen vorgenommen.
    Das läuft solange bis das Flag auf FALSE gesetzt wird.

    Mein Problem ist das die GUI die nicht mehr auf Eingaben reagiert weil die do-while Schleife durchläuft, und ich die Messung nicht stoppen kann
    bzw. das Programm abstürzt.

    Hat jemand eine Idee oder ein Beispiel wie das mit einem Thread lösen kann.
    Soll ich einen Thread für die GUI starten oder einen Workthread für die serielle Übertragung ?

    THX for help

    Aileron



  • Versuch alles was mit deienr Do-While schleife zu tun hat in einen einzelne Funktion zu packen und starte diese Funktion mit _beginthread(thread_function,0,NULL);
    deine main läuft dann weiter und deine Funktion welche mit dem automaten spricht läuft parallel



  • Danke für den Tip, werde ich ausprobieren
    mein erster Versuch war den Thread über Start und Stoppbutton der Anwendung zu starten, aber das geht nicht. Da stürzt des Programm ab mit Fehlermeldungen aus verschieden DLL´S.

    Aileron



  • Noch schöner und auch MFC

    class CWinThread
    Alles weitere in der FAQ


Anmelden zum Antworten