Fonctionnement tache de fond [Résolu]

Signaler
Messages postés
16
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
15 mars 2013
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour à tous.
J'ai ecrit un programme avec l'API windows qui m'affiche une fenetre avec diver controles.
Je voudrais faire tourner une tache de fond qui scrute le port parallele et qui repond en affichant une MessageBox en fonction de la lecture du port parrallele.

La tache de fond est déclenché par l'appuis sur un bouton de la fenetre principale.
Comment faire pour que la tache de fond tourne jusqu'a l'appuis sur un autre bouton sans perdre la main sur la fenetre ou sont justement les bontons.
C'est a dire que quand ma tache de fond tourne, je ne peut plus rien faire sur ma fenetre principale qui devient inactive donc je ne peut plus arreter la tache de fond.
Autrement dit quel est le moyen de faire tourner une tache de fond sans perdre la main de la fenetre qui a déclenché son execution.

J'espere que j'ai été assez clair pour exposer mon probleme et quelqu'un pourra le résoudre.

Merci d'avance a tous ceux qui me répondront.

Bonne prog à tous.

3 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Mets ta tache dans un thread, voir CreateThread().

ciao...
BruNews, MVP VC++
Messages postés
16
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
15 mars 2013

Merci pour ta réponse, ça marche nickel dans un thread.
Mais....
Y a t-il un moyen de limiter le temps alloué au thread de sorte que le processeur ne tourne pas a 100% pendant que le thread est lancé.
Dans mon cas le thread contient un boucle infini qui attend des signaux venant du port parallele. Ces signaux peuvent arriver n'importe quand et pendant ce temps la le proc galope a fond.
Donc est-ce qu'on peut diminuer la charge du proc de telle maniere qu'il tourne qu'a 80 ou 70%?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Tu peux abaisser sa priorité avec SetThreadPriority().
Pour le reste faut que tu vois le déroulement de ton proc si tu ne peux pas faire avec des Event comme pour les sockets.

ciao...
BruNews, MVP VC++