je code dans Qt qui va comme ceci:Quand un thread sort-il?
void doSomeStuff()
{
...
if(blah blah)
someObj.start();
...
}
puis someObj.run()
:
void someObj::run()
{
blah blah blah, do some stuff
doSomeStuff()
}
Ce que j'étais ont l'intention est pour le nouveau thread créé à someObj.start()
pour mettre fin, puis la fonction doSomeStuff
dans le thread principal est appelé à nouveau une fois qu'il s'arrête. Mais mon programme s'est écrasé au hasard, et quand j'ai suivi de près le code, j'ai réalisé que le vrai cas était que le nouveau thread appelle simplement la fonction sans mourir, engendrant ainsi de nouveaux threads en continu. Mes soupçons sont-ils corrects? Si oui, comment dois-je y remédier?
Pourquoi aurait appeler une fonction dans une cause de fil cette fonction à exécuter ailleurs que le thread qui l'appelle? Aussi, -1 pour ne pas l'avoir essayé en premier. – Falmarri
@Falmarri exactement, donc je voulais vérifier ici si mon intuition était correcte. Btw, que devrais-je essayé en premier? – wrongusername
@Falmarri peut-être que vous pensiez que j'avais écrit du code et ne l'avais pas encore essayé et posté ici ... Je devrais mettre à jour la question pour le rendre plus clair – wrongusername