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; }
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.