Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1097 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [win32 et linux] thread , suspension et reprise

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[win32 et linux] thread , suspension et reprise

n°1304938
xilebo
noone
Posté le 14-02-2006 à 10:13:16  profilanswer
 

bonjour,
 
je suis confronté à un problème. J'ai une tâche exécutée par un thread qui fonctionne de la facon suivante :
 
 

Code :
  1. while (1) {
  2.       Sleep(2000); // endormir le thread pendant 2000 ms
  3.    
  4.       mutex.Lock();
  5.       // executer toutes les taches de ma liste s'il y en a
  6.    
  7.       while (GetNextCommand(cmd)) {
  8.           cmd.Execute();       
  9.       }
  10.       mutex.Unlock();     
  11. }


 
 
Toutes les 2 secondes, le thread va donc voir s'il y a des tâches a executer dans une liste. Jusque la, tout va bien.
 
Par contre, il est possible d'ajouter d'autres tâches à effectuer à n'importe quel moment (par exemple lorsqu'on appuie sur un bouton). Le problème est qu'il faudrait que je réveille mon thread sans attendre la fin du Sleep(2000)
 
Et je n'ai pas trouvé de mécanisme pour faire ca sous windows. En effet, la fonction ResumeThread() fonctionne avec la fonction SuspendThread() qui ne fait qu'incrémenter/décrémenter un compteur de suspension sans notion de temps. Il y a bien la fonction WaitForSingleObject  que je peux appeler sur mon handle de thread avec un temps , ce qui revient à faire un Sleep, mais je ne vois pas comment signaler mon thread pour qu'il sorte du WaitForSingleObject.
 
De plus, je dois également mettre en place ce mécanisme sous linux avec les pthread, et je ne vois pas du tout comment m'y prendre, à part peut etre avec les pthread_cond_*
 
Merci d'avance pour vos réponses  :jap:

mood
Publicité
Posté le 14-02-2006 à 10:13:16  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [win32 et linux] thread , suspension et reprise

 

Sujets relatifs
Portage de site sur Linux[C][Linux] Faire coexister deux versions d'une librairie
Difference shell Unix et shell LinuxProgrammer en JAVA. Avec quoi sous linux ?
flash+linuxthread persistant
pbm odbc sous linuxProgramme linux sous windows
[C++ DL Linux] invalid pointerCréation de dsn sous linux en console
Plus de sujets relatifs à : [win32 et linux] thread , suspension et reprise


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR