Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lancement thread successif (ordonnés) [ Archives / Au secours ] (themaste)

lundi 19 septembre 2005 à 09:58:45 | Lancement thread successif (ordonnés)

themaste

Salut!
Voila, j'ai une question d'ordre propreté du code.
En fait, j'ai plusieurs thread, et j'aimerais pouvoir les lancés les un après les autres..je m'explique....
Chaque thread possède une initialisation, mais il faudrait que le thread 2 se lance une fois que le 1 a fini son initialisation, que le 3 commence après l'init du 2 etc....
J'ai pensé a une variable globale (système que j'utilise deja pour la fin), mais je voulais savoir si il y avait une methode "propre" vis a vis du code pour ce principe.

Je vous remercie pour vos reponses!!!

lundi 19 septembre 2005 à 10:07:12 | Re : Lancement thread successif (ordonnés)

BruNews

Administrateur CodeS-SourceS
Une solution propre, fais un event avec CreateEvent(), tu pourras faire un WaitForSingleObject dessus, le signaler par SetEvent(), etc...

ciao...
BruNews, MVP VC++

lundi 19 septembre 2005 à 11:46:29 | Re : Lancement thread successif (ordonnés)

dofdof

Salut,

Tu peux créer un objet file d'attente.

lundi 19 septembre 2005 à 17:28:45 | Re : Lancement thread successif (ordonnés)

themaste

J'ai essayer avec les events, mais sans succès a priori. Je dois mal m'y prendre.

Voila ce que j'ai:

HANDLE hGlobalWriteEvent;

DWORD WINAPI LaunchMainThread( LPVOID pParam )

{

bool l_bResult = SetEvent(hGlobalWriteEvent);

...

l_bResult = ResetEvent(hGlobalWriteEvent);

...

//Fin du thread

ExitThread(0);

return 0; // thread completed successfully

}

DWORD WINAPI LaunchDecisionCheckingThread( LPVOID pParam )

{

WaitForSingleObject(hGlobalWriteEvent, INFINITE);

...

//Fin du thread

ExitThread(0);

return 0; // thread completed successfully

}

Et dans la fonction principale, je met:

hGlobalWriteEvent = CreateEvent(NULL, TRUE, TRUE, "WriteEvent");
Avant de créer les thread...
Mais en fait, le waitfor singleobject n'attends pas..... Du coup, je sais pas koi faire.


lundi 19 septembre 2005 à 17:47:35 | Re : Lancement thread successif (ordonnés)

BruNews

Administrateur CodeS-SourceS
Func qui lance les threads:
hev = CreateEvent(0, 1, 0, 0); // MANUEL, NON SIGNALE
// lance 1er thread
WaitForSingleObject(hev, INFINITE);   // ATTENTE SIGNALEMENT
ResetEvent(hev);                      // REMISE EN NON SIGNALE
// lance 2nd thread
WaitForSingleObject(hev, INFINITE);   // ATTENTE SIGNALEMENT
ResetEvent(hev);                      // REMISE EN NON SIGNALE
etc....
CloseHandle(hev);

1er thread:
// fais ses inits
SetEvent(hev); // INFORME QUI ATTEND PAR SIGNALEMENT EVENT
// finit son boulot

autres threads idem.


ciao...
BruNews, MVP VC++



Cette discussion est classé dans : code, lancement, thread, successif, ordonnés


Répondre à ce message

Sujets en rapport avec ce message

thread [ par lounirp ] lounirpA l'aide!!J'ai un problème avec le lancement d'un threadcomment faire pour que je puisse lancer un thread sur une méthode getPNMData...Vlà ce q à propos des threads [ par GUERRIER_ABSOLU ] Salut, je voudrais savoir s'i quelqu'un a déjà essayé d'appeler une fonction dans un thread et a remarqué quelque chose d'innatendu. En fait quand j'a Class & CreateThread [ par Renfield ] Bonjour, j'ai un petit soucis de compilation...dans une classe, je voudrais créer un Thread. ma proc est définie comme cela :LPTHREAD_START_ROUTINE Question sur Thread dans mon serveur multithread [ par Nixeus ] Bonjour a tous !J'ai récupérer un code source d' un serveur multithread multi client, en mode console.J'ai repris les classes et j'ai porté ce program Threads sous Windows/Linux [ par raananb ] L'extrait de code ci-après (développé avec wxWidgets en C++) traite une série de fichiers : pour chaque fichier il affiche le nom dans un label, une i Prob de thread [ par sebastienbro ] Bonjour, j'ai un problème avec des thread, je n'arrive pas a en créer un :(Voici mon code : HANDLE hThread1;DWORD dwThreadId1;DWORD WINAPI T Terminer un thread [ par vecchio56 ] RebonjourJ'ai crée un thread de la manière suivante:HANDLE hThread = CreateThread(0, 0, ThreadProc, &ts, 0, &dwThreadId);et je thread [ par li ] voila mon code  ...j'esplique, j'ai une class qui contien une function que je veut apeler dans un thread et cela me cause certain probleme   que j'ai [QT] Probleme avec QListWidget [ par Ilsundal ] Bonjour à tous,j'ai un probléme d'actualisation de ma QListWidget dans mon programme, en fait cette QList me sert de journal (log) pour les action du Lancement de "Hello World !" Qt4 [ par LucyUnDemi ] Bonjour a tousJe travaille sous kubuntu ; il y a quelques temps deja j'ai installe une bibliotheque Qt4 et Code::Blocks, et les programmes que je fesa


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,780 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.