Event et Thread sous Win32

Event et Thread sous Win32 - Programmation

Marsh Posté le 21-03-2001 à 12:49:09    

Existe-t-il un moyen sous Windows d'envoyer des evenements entre Thread ?
En particulier pouvoir avoir une sorte de "WaitEvent" dans du code.
 
Pour l'instant j'ai une variable globale booléenne et un while dessus pour attendre que l'autre thread me dise qu'il a finit.
C'est pas BO !

Reply

Marsh Posté le 21-03-2001 à 12:49:09   

Reply

Marsh Posté le 21-03-2001 à 13:23:03    

Effectivement la methode que tu utilise n'est pas bonne car le thread qui attend reste planifiable et consome du temps cpu.
Tu peux utiliser la fonction:
DWORD WaitForSingleObject(
 
    HANDLE hHandle, // handle of object to wait for  
    DWORD dwMilliseconds  // time-out interval in milliseconds  
   );
Avec comme handle le handle du thread dont tu attends la fin de l'exécution.

Reply

Marsh Posté le 21-03-2001 à 14:13:18    

Ou le HANDLE d'un Mutex :D
Ou d'un sempahore ? :)

Reply

Marsh Posté le 21-03-2001 à 17:09:01    

Les communications inter-Process sous win32 ( enfin a peu pres )
:
. des mutex
. des semaphores
. des pipes
. des named pipes
. des sockets
. des evenements

Reply

Marsh Posté le 21-03-2001 à 17:19:58    

-------------------
Existe-t-il un moyen sous Windows d'envoyer des evenements entre Thread ?  
-------------------
 
je dirais même plus:
les mutex, par exemples, peuvent être créés avec un nom. Cela permet de pouvoir y acceder même depuis d'autres programmes.
C'est en général ce qui est fait lorsque l'on veut que lancer 2 fois l'application en même temps soit impossible:
.en début d'application, on crée un mutex avec un nom bien défini, et on se l'approprie.
. on ne le relache que l'orsque l'on quitte l'appli.
 
Dc si on tente de lancer une deuxième fois l'appli, celle-ci ne pourra pas ni créer le mutex ni se l'approprier puisqu'il existe déjà et qu'il est déjà pris.

Reply

Marsh Posté le 21-03-2001 à 17:25:23    

Génial !
Merci :D

Reply

Marsh Posté le 21-03-2001 à 20:15:57    

Il y a PostThreadMessage et WaitMessage

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed