wie man thread und sleep benutzen kann?



  • Hallo liebe C++ Gemeinde,

    ich habe ein Problem und hoffe, dass hier mir jemand hilfen kann.

    Das Problem ist so: wenn t.readAndStoreData() aufgeruf ist, kommt nicht weiter, da meine read_mechanismus: endlos - while - schleife(die ich zum Daten von port(RS232) aus ziehen brauche ) darin ist.

    wie kann ich mit so etwas wie thread und sleep die while-schleife steueren, dadurch fogende Methoden(hier, t.getNr() ) aufrufen können.

    Die Code sieht etwas wie folgende aus:

    #include "test.h"
    
    int main()
    {
        Test t;
        t.operAndInitPort();
        t.reasAndStoreData();
        t.getNr();
    
        return 0;
    }
    

    //test.h

    class Test 
    { 
    public: 
        Test(); 
        ... 
        void readAndStoreData(); 
        int getNr(); 
        ... 
    private: 
        int nr; 
        ... 
    }; 
    
    // test.cpp 
    Test::Test() 
    { 
       nr = 0; 
    } 
    
    void Test::readAndStroeData() 
    { 
        while( 1 )
        {
         // hier ist die Data von port gelesen und in memberVariable nr schreiben 
         // zb: read ( fd, buffer, 1 ); 
         // ...
    
         nr = (int)buffer[0]; 
        }
    } 
    
    int Test::getNr() 
    { 
        return nr; 
    }
    

    gruss vor dem Computer 😮 😮 😮



  • Hallo alle,

    weiß jemand, wie man mit Thread arbeiten kann. ein paar link..., da ich keine Ahnung von Thread habe.

    kanke für die Hilfe



  • falsches Forum ... WinAPI!



  • nicht unbedingt, Threads sind nicht unbedingt was windoof-spezifisches. Google mal nach boost::asio oder boost::threads, da gibts infos ueber ne bibiothek die threading weitgehend plattformunabhaengig macht.



  • Dankeschön für die Antwort.

    ich arbeite unter VM Linux SUSE10.0 mit compiler von gun bzw. g++.

    ich habe schon Stundenlang gegooglet und keine passende Code gefunden.

    Ich google asio oder boost::threads weiter...



  • gibt es alternativ, zum Beispiel ohne Thread zu verwenden, um mein Problem zu lösen ?

    danke für alle



  • Alternativ zu Threads kannst du das ganze auch mit einem "select" lösen.

    Zu select solltest du einiges im Netz finden oder einfach in den Linux man-pages...

    Gruß, Hanebuchen



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten