QThread soll unabhängig von Application werden

Orbit

Erfahrenes Mitglied
Hallo,

erstelle ich einen QZThread und rufe in der Methode run(9 exec(9 auf und starte den thread dann über start(); sollte der QThread dann nicht in seinem eigegen EventLoop laufen, also nicht mehr an den MainThread gekoppelt saein?
Habe das Problem, dass ich sehr Intensive PaintArbeit leiste (im Mainthread) und nebenher zeitkritisch in nem anderen thread was ausführen will; belastet man den painter etwas mehr oder führt was schwieriges im Hauptthread aus, ist auch der Thread nicht mehr schnell genug und es kopmmt zu zeitverzögerungen; was kann man da machen? Thread::setPriority habbich auch schon gemacht, rtut aber leider nix. Das problem tritt nicht auf, wenn man ein anderes Programm ausführt, was ebenso viel Prozessorarbeit braucht; es muss doch eine Möglichkeit geben, den Thread über oder auf die ebene des Hauptthreads zu packen?

Lg,
Orbit
 
Hi, die Priorität habe ich schon auf QThread::TimeCriticalPriority gesetzt, leider ändert dies so gut wie nix (oder nix?) aber es wird keine Wanrnung ausgegeben (z.B. Setting Priority failed, Thread not running oder so).
Das witzige ist halt, dass kein anderes Programm den Thread zu beeinflussen scheint also in der Ausführungsgeschwindigkeit; nur der MainThread des Programms bringt ihn duircheinander (auch wenn nicht auf gleiche Daten zugegriffen wird übrigens). Ich dachte dies würde mit QThread::exec() behoben, dies rufe ich allerdings auch auf und es tut auch (ein QTimer beweißt es).

Danke für den Link, werde es mal ausprobieren finds aber eigentlich keine Alternative, weil es ja von der Prozessor/Ramauslastung noch viel Potential nach oben gibt, also sollte der MainThrwad auch volle Geschwindigkeit tun.

LG,
Orbit
 
Zurück