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 : Sélectionner tout - Visualiser dans une fenêtre à part
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