begin process at 2012 02 12 13:17:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

lancer un thread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lancer un thread

jeudi 2 août 2007 à 09:24:36 | lancer un thread

Yunchi

Bonjour, J'ai une interface graphique en gtk. Lorsque je click sur un bouton, ca lance la fonction void fonction(); au debut de cette fonction je cree un thread qui va afficher du texte dans un entry. Le thread est cree avec g_thread_create(mon_thread,NULL,FALSE,&error) dans void fonction() j'ai donc en tout debut cette instruction puis des sleep. Le probleme est que le thread ne se lance qu'a la fin de la fonction alors qu'elle devrait se lance au debut :/ par exemple : void fonction(){ //declaration des variables g_thread_create(send_thread,NULL,FALSE,&error); //instruction 1 //sleep(5000); //instruction 2 } Le thread affiche en continue dans une entry du texte. Logiquement lorsque j'appelle la fonction void fonction, ca devrait commencer a afficher du texte dans l'entry puis passer a l'instruction 1, attendre 5s et executer l'instruction 2. Mais lorsque je lance fonction, ca attend 5s avant de commencer a afficher du texte dans l'entry donc j'en conclu que le thread ne se lance qu'a la fin de la fonction ? Si quelqu'un sait comment regler ce probleme et lancer le thread en debut de fonction ... Merci
jeudi 2 août 2007 à 11:41:55 | Re : lancer un thread

luhtor

Tu n'as pas le droit d'agir sur la GUI à partir d'un thread sauf en utilisant les fonctions g_thread_enter_ et g_thread_leave ou un truc comme ca. Bref c'est le merdier, donc jamais utiliser de thread pour écrire dans une text entry.

Pour ton pb, le thread devrait se lancer immédiatement:
http://developer.gnome.org/doc/API/2.0/glib/glib-Threads.html#g-thread-create

vendredi 3 août 2007 à 03:12:57 | Re : lancer un thread

Yunchi

oui dans ma fonction send_thread(), les gtk_entry_set_text sont encadres par gdk_threads_enter(); et gdk_flush (); / gdk_threads_leave(); bah en meme temps je vois pas d'autre solution pour afficher du texte en temps reel dans le gtk_entry sinon ....
vendredi 3 août 2007 à 16:16:23 | Re : lancer un thread

luhtor

Remarque, ya longtemps que j'ai pas fais de gtk, mais doit surement y avoir l'équivalent des "posted events" qu'on trouve en Qt ou wxWidget. Ces events font le lien entre des threads et le thread principal.


Cette discussion est classée dans : fonction, lance, void, thread, instruction


Répondre à ce message

Sujets en rapport avec ce message

Envoi de parametre dans un thread en C++ [ par xinob ] Bonjour a tous,Je me permets de poster un message car je n'ai pas trouver de réponse que j'ai comprise sur le net .En effet , j ai quelques questions arrêt imprévu de thread [ par mayssakh84 ] Bonjour, J'ai une fonction appelé dasn un thread qui fait appel à une fonction chargée à partir d'une dll. Mon problème c'est que parfois , le thread Threads, fonction et mutex ? [ par Adict ] bonjour à tout le monde [^^happy13] dans mon projet de créer un tchat il faut que j'applique sur le client un thread qui exécute une autre fonction q Multi-threading [ par PriMe2302 ] Bonjour, J'ai un fonction à lancer sur plusieurs fichiers. J'ai créé n threads et lancé la fonction sur chaque thread avec un fichier différent. J'ai Socket RAW IPPROTO_ICMP et thread [ par ags_squale ] Bonjour,J'essaie de développer un petit module qui 'pingue'  des équipements de manière simultanée. Je suis sous linux 2.6 - mandriva.Pour cela je lan Thread socket icmp [ par ghanmi04_05 ] Bonjour j'ai un programme qui lance des threads de contrôle des interfaces réseaux disponible sur une machine quelconque(windows). Si je lance une fo Débutant C : Problème pour récupérer une valeur dans un thread [ par eustatika ] Bonjour, [^^clinoeil1] Je débute en C et suis actuellement bloqué lorsqu'il s'agit de renvoyer une valeur à la fin de l'exécution d'un thread. Voici m multi thread et vecteur d'objet [ par seb2583 ] Bonjour a tous, j'ai un probleme que je n'arrive pas a resoudre. Dans mon code C++, j'ai un vecteur (de type boost) d'objet (de classe A). Dans mon Thread ? [ par galax98 ] Bonjour Une petite question sans doute basique mais je n'arrive pas à m'en sortir. J'ai développé une application Windows sous dev-cpp, avec notamment


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,746 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales