Bonjour,
voila j’ai une application classique avec tres peu de code, je vous montre le main.qml :
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle{
width : parent.width / 2
height : parent.height /2
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
color : "red"
RotationAnimation on rotation {
loops: Animation.Infinite
from: 0
to: 360
}
MouseArea{
anchors.fill : parent
onClicked : {
console.log("coucou")
controller.boutonRun()
}
}
}
}
et lors de l’appui sur le bouton, ca lance la méthode :
void Controller::boutonRun()
{
qDebug() << "bouton lancé ! ";
sleep(5);
}
quand je lance le programme j’ai donc un rectangle rouge qui tourne sur lui meme. Ce qui m’interroge c’est le fonctionnement de l’application.
Quand je fais sur un terminal : cat /proc/<pid_de_mon_application>/status | grep Threads
j’obtiens: Threads: 6
j’ai donc 6 threads qui tourne en parallele juste avec mon application classique.
je me suis donc dit naivement qu’au moins 1 thread controlait le code source et un autre thread controlé l’interface graphique avec mon rectangle rouge, or quand j’appuie sur le bouton, le sleep(5) fige mon interface graphique et par conséquent le rectangle rouge ne bouge plus pendant 5 secondes, donc l’interface graphique et mon code source ne font qu’un, donc juste 1 thread ? et a quoi sert les autres 5 threads ?
merci d’avance pour votre aide