probleme avec g_timeout_add_seconds
Salut tout le monde ,
je veux lancer la fonction "traverse" pendant n seconds puis la stopper c'est pour cela j'ai utilisé g_timeout_add_seconds comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
void programme_principal()
{
int b = 10;
guint timeout_id=g_timeout_add_seconds(2, (GSourceFunc)create_timeout,(gpointer) &b);
traverse(b);
g_source_remove(timeout_id);
}
void create_timeout (int b)
{
b= 20;
printf ("%d \n", b );
}
void traverse(int b )
{
for (int i=0; i <= 1000 && b!=20; i++)
{
printf ("%s \n ","hello " );
}
} |
la fonction create_timeout va changer la valeur de b apres 2 seconds et quand la fonction "traverse" recoit la valeur de b a 20 il va arreter
l'affichage de message "hello ",
mais j'ai toujour tous les messages "hello" , le programme ne s'arrete plus apres 2 seconds ?
vous pouvez m'aider ?
Merci d'avance pour tout aide