Wie kann ich in QT -Anmut und sofortiger Abschaltung für Arbeiter -Threads (Abfindung in die Warteschlange) implementierC++

Programme in C++. Entwicklerforum
Guest
 Wie kann ich in QT -Anmut und sofortiger Abschaltung für Arbeiter -Threads (Abfindung in die Warteschlange) implementier

Post by Guest »

Ich habe zwei Worker -Klassen, Task1 und Task2 , die jeweils in ihrem eigenen QThread ausgeführt werden.
Der Workflow lautet: < /strong> < /p>

[*]

Code: Select all

Task1
emittiert wiederholt Daten (

Code: Select all

task1_data
) Während es ausgeführt wird.
[*]

Code: Select all

Task2
empfängt Daten über eine Warteschlangeverbindung (on_task1_data) und verarbeitet sie anschließend verarbeitete Daten (Task2_Data) zum Hauptthread (GUI). P> Ich brauche zwei verschiedene Herunterfahren [/b] Szenarien:
Anmutiger Abschaltung:

Code: Select all

Task1
stellt die Erzeugung neuer Daten nicht mehr (so werden keine neuen Signale emittiert).
[*]

Code: Select all

Task2
beendet die Verarbeitung der Daten, die bereits in der Ereigniswarteschlange angekommen sind. >
< /ul>
Sofortige Abschaltung: < /strong> < /p>

Code: Select all

Task1
stellt die Erzeugung neuer Daten nicht mehr zu. /> Alle bereits von Task2 für den Hauptdhreop emittierten Signale in der Warteschlange werden ebenfalls ignoriert (so verschwendet der Hauptfaden keine Zeitabwicklung).
Die Aufgaben leiten korrekt so schnell wie möglich, ohne dass in der Warteschlange gearbeitet wird. >
Das Widget, das diese Aufgabe gestartet hat Parameter, daher müssen wir die Verarbeitung der alten Daten so schnell wie möglich einstellen.

Code: Select all

#include 
#include 
#include 
#include 
#include 

class Task1 : public QObject {
Q_OBJECT
public:
Task1() {}
~Task1() {
qDebug() isInterruptionRequested()) {
emit task1_data(i, QVector(1000000, 1));
qDebug() start();
}

void onStopThread() {
thread1->requestInterruption();
thread2->requestInterruption();
}

void onData(int i, const QVector& data) {
// Update widgets with new data
qDebug()  Verarbeitung wird nicht fortgesetzt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post