Slt! sur une interface, j'essaie de récupérer après chaque seconde (d'un serveur) un texte que j'affiche sur un label. L'affichage doit être dynamique: rafraichissement de l'affichage après chaque seconde
j'ai utilisé gtk_events_pending()(pour le rafraissement instantané) dans ce bout de code:
je signale d'abord que la fonction dans laquelle se trouve ce bout de code se trouve elle-même dans un thread.
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 //... //reponse=sock_recv_text_dyn(sock); while(strcmp(reponse,"FIN")!=0 && strcmp(reponse,"0:0")!=0){ while(gtk_events_pending()){ gtk_main_iteration(); } gtk_label_set_text(GTK_LABEL(hm_restantes),reponse); //free(reponse),reponse=NULL; //reponse=sock_recv_text_dyn(sock); } //free(reponse),reponse=NULL; //..
Mon problème est le suivant. l'utilisation de gtk_events_pending() me donne le résultat que je veux mais pendant l'exécution, j'obtiens une erreur qui m'affiche ceci:
Glib-Warning main loop already active in another thread (g_main_context_prepare())
Merci de bien vouloir me dire ce qui ne va pas et comment le résoudre.
NB: quand j'enlève gtk_events_pending(), cette erreur à l'éxécution ne vient plus mais l'affichage n'est pas dynamique sous mes yeux.
Bonne suite à tous!
Partager