Thread et Evenement

Thread et Evenement - C#/.NET managed - Programmation

Marsh Posté le 06-12-2007 à 12:27:46    

Salut a tous,
Je vous explique,
J'ai une application qui sert a faire des racourci clavier,
J'ai donc un thread et mon evenement
Le truk c'est que je met mon thread en sleep et donc du coup levenement reveil pas le thread
Et je sais pas comment faire...

Code :
  1. init_thread()
  2. {
  3.             ecoute.Enabled = true;
  4. // abonnement a mon evenement ?
  5.             ecoute.KeyDown += new EventHandler<KeyEventArgs>(even_KeyDown);
  6. // Mise en attente
  7.             this.attente();
  8. }
  9. private void attente()
  10.         {
  11.             while (Thread.CurrentThread.IsAlive)
  12.             {
  13.                 Thread.Sleep(1000);
  14.                
  15.             }
  16.         }
  17. private void even_KeyDown(mes arguments)
  18. {
  19. /*
  20. ...
  21. */
  22. }

Reply

Marsh Posté le 06-12-2007 à 12:27:46   

Reply

Marsh Posté le 06-12-2007 à 13:24:20    

la question, c'est pourquoi tu as besoin d'un Thread?
J'en voix pas l'interet.

Reply

Marsh Posté le 09-12-2007 à 14:03:10    

comment tu veux faire alors ?
faut mettre mon truk en attente pour qu'il attende les evenements

Reply

Marsh Posté le 09-12-2007 à 16:48:07    

c'est la que tu n'as rien compris...
 
Dans une application, tu lances un Event depuis ton code. Tout les listener qui se seront lié à cet event recevront la demande d'event. Donc je vois pas en quoi tu as besoin de mettre un thread en attente. ça n'a aucun sens.  
Les events, comme les delegates, ça fonctionne de façon assynchrone.

Reply

Marsh Posté le 09-12-2007 à 17:18:17    

korben31 a écrit :

comment tu veux faire alors ?
faut mettre mon truk en attente pour qu'il attende les evenements


passe par un hook global, c'est la méthode à adopter pour ce genre de truc
http://www.codeproject.com/KB/syst [...] mhook.aspx

Reply

Marsh Posté le 11-12-2007 à 00:20:24    

ah tu ve dire que je lance labonnement et je blok mon appli ... je suis un pe perdu

Reply

Marsh Posté le 11-12-2007 à 06:59:54    

korben31 a écrit :

ah tu ve dire que je lance labonnement et je blok mon appli ... je suis un pe perdu


 
Le principe de ce genre de truc est justemet d'éviter de bloquer l'appli.  
J'ai lu juste vite fait et il me semble que c'est simplement le hook qui va se charger de lancer les bons threads et que justement il a été pensé pour éviter la multiplication de ceux ci.
 
Pour résumer utilise l'exemple qu'ils donnent et regarde par toi même: l'application se bloque pas et tu n'as aucun thread à créer pour ca, magie de l'encapsulation [:petrus75]

Reply

Marsh Posté le 11-12-2007 à 11:11:30    

cf mon convertisseur euro à la volée : http://harko.free.fr/soft/euroconv.zip
 
l'appui sur la touche PAUSE déclenche la fenêtre de conversion. c'est géré par un hook global qui intercepte les events claviers avant qu'ils n'arrivent à destination de l'appli destinatrice. aucun thread, rien de créé

Reply

Sujets relatifs:

Leave a Replay

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