Hallo,
ist es möglich, dass ein (Haupt)Thread regelmäßig in einem weiteren Ziel-Thread (oder mehreren) eine Ziel-Funktion auslöst während der Ziel-Thread und dessen Variablen am leben bleiben?
Zusammengefasst wäre das Ziel:
- Ziel-Threads und dessen Variablen/Speicher bleiben dauerhaft am leben.
- Ziel-Threads enthalten oder stellen eine Funktion da, welche durch den Haupt-Thread getriggert wird.
- Haupt-Thread triggert völlig unregelmäßig die Funktion in einem oder mehreren Ziel-Threads.
- Haupt-Thread übergibt jedem Thread den er triggert ein paar wenige Werte mit.
Klassischerweise kenne und starte ich einen Thread wie eine Funktion und wenn diese Funktion durchgelaufen ist, stirbt auch der Thread.
Etwa in dem Style:
Auf dieser Basis fällt mir nur eine Endlosschleife ein, die in den Thread kommt und jeder Durchlauf stellt die zu triggernde Ziel-Funktion dar... aber man bräuchte dann noch etwas, dass wie "blockierendes Warten" funktioniert und auf das Signal des Hauptthreads wartet. Wie das gezielte Triggern zwischen Threads funktioniert weiß ich nicht.
Das blockierendes Warten kenne ich nur von Netzwerksachen aber nicht für Threads. Aber im Prinzip sollten GUIs auch nicht viel anders funktionieren als das was ich vorhabe (event handler oder sowas) daher müsste es doch irgendwas geben.
Vielleicht gibt es auch schickere Lösungen als blockierende Endlosschleifen?
Hat jemand eine Idee wie ich da weiterkomme, was gibt es für Möglichkeiten?
Grüße
ist es möglich, dass ein (Haupt)Thread regelmäßig in einem weiteren Ziel-Thread (oder mehreren) eine Ziel-Funktion auslöst während der Ziel-Thread und dessen Variablen am leben bleiben?
Zusammengefasst wäre das Ziel:
- Ziel-Threads und dessen Variablen/Speicher bleiben dauerhaft am leben.
- Ziel-Threads enthalten oder stellen eine Funktion da, welche durch den Haupt-Thread getriggert wird.
- Haupt-Thread triggert völlig unregelmäßig die Funktion in einem oder mehreren Ziel-Threads.
- Haupt-Thread übergibt jedem Thread den er triggert ein paar wenige Werte mit.
Klassischerweise kenne und starte ich einen Thread wie eine Funktion und wenn diese Funktion durchgelaufen ist, stirbt auch der Thread.
Etwa in dem Style:
Code:
void funktion()
{
// inhalt
}
std::thread(funktion).detach();
Auf dieser Basis fällt mir nur eine Endlosschleife ein, die in den Thread kommt und jeder Durchlauf stellt die zu triggernde Ziel-Funktion dar... aber man bräuchte dann noch etwas, dass wie "blockierendes Warten" funktioniert und auf das Signal des Hauptthreads wartet. Wie das gezielte Triggern zwischen Threads funktioniert weiß ich nicht.
Das blockierendes Warten kenne ich nur von Netzwerksachen aber nicht für Threads. Aber im Prinzip sollten GUIs auch nicht viel anders funktionieren als das was ich vorhabe (event handler oder sowas) daher müsste es doch irgendwas geben.
Vielleicht gibt es auch schickere Lösungen als blockierende Endlosschleifen?
Hat jemand eine Idee wie ich da weiterkomme, was gibt es für Möglichkeiten?
Grüße