Bonjour,
j'ai un petit problème très simple à comprendre mais assez complexe à résoudre.

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void MainWindow::sleep(int time)
{
    dieTime = QTime::currentTime().addMSecs(time);
    while (QTime::currentTime() < dieTime)
        QCoreApplication::processEvents(); // (QEventLoop::AllEvents, 100)
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
void MainWindow::button_test1()
{
    while(true)
    {
        this->write("test 1", "console");
        this->sleep(1000);
    }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
void MainWindow::button_test2()
{
    int nb = 0;
    while(nb < 10)
    {
        this->write("test 2", "console");
        this->sleep(1000);
        nb++;
    }
}
Quand j'appuis sur le bouton test2 après le bouton test1, le bouton test1 se stop, le bouton test2 écrit 10 fois "test 2" et seulement à la fin le bouton test1 reprends l'écriture de "test 1" dans la console de mon application.

N'y a-t'il pas un moyen pour que button_test1 et button_test2 s’exécute en même temps en prenant le relais durant le sleep ?

La seul solution est-elle de passer par des threads ???

Merci d'avance,
Matthieu