Seite 1 von 1
Asynchrone Funktionen
Verfasst: 14. Oktober 2006 07:55
von jack
Hallo alle zusammen,
ich würde gerne wissen, wie ihr asynchrone Funktionen realisiert!
Nach meinem jetzigen Erkenntnisstand würde ich ungern meine Klassen von QThread ableiten um nur eine oder zwei asynchrone Funktionen zu realisieren.
Da bevorzuge ich lieber die statische Methode QMetaObject::invokeMethod, was hält ihr von dieser Methode und wie realisiert ihr asynchrone Abläufe?
Danke
Verfasst: 14. Oktober 2006 19:02
von upsala
Zwei Möglichkeiten: Custom-Events und QTimer-Signale
Verfasst: 16. Oktober 2006 11:23
von RHBaum
wie upsala andeutet gibt es fuer asynchrone sachen, neben dem multithreading, nur noch die leerlaufschlaife die man nutzen kann ^^
wenn man sowas macht, um sich das multithreading zu ersparen, kopmmt in die eigentliche funktion aber nen overhead rein ... weil die funktion immer stueckchenweisse ausgefuehrt werden muss, und daher ihre statis speichern muss um irgendwann mal wieder weitermachen zu koennen wo sie letztes mal aufhoerte ...
Bei komplizierteren funktionen ist das nicht mehr haendelbar.
Ich persoenlich verwende immer multithreading bei solchen sachen ^^ Mit bisserl erfahrung und nem blick worauf man zu achten hat, was man schueetzen muss etc ... iss das viel einfacher zu haendeln (sofern nich andere dinge dagegen sprechen, z.b. nicht multithreading faehige bibos, aber da bekommt man ja in QT eh probleme).
Die QT4 machts einem ja noch einfacher, da signale und slots eh multithread technisch entkoppelt sind.
QThread verwende ich eher seltener (ok, ich bin auch nicht wirklich plattformunabhaengig ^^) ich zieh meine threads eigentlich immer selber auf .... und lagere viel in DLL's aus ...
Ciao ...