julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009
-
22 mars 2006 à 22:50
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
27 mars 2006 à 22:51
Bonjour j'ai besoin de creer un timer qui verifie l'etat d'un bouton (s'il a ete cliquer ou non) pendant qu'une autre action s'effectue.
Pourr etre plus clair, j'ai deux boutons, l'un sert au demarage d'une boucle while et l'autre est senser servir a stoper la boucle. Le probleme c'est que qd la boucle while s'effectue, je ne peut plus appuyer sur l'autre bouton. Il faut donc que j'effectue un test dans ma boucle while a interval regulier pour verifier que le bouton stop n'est pas ete clique.
Quelqu'un pourait il m'indiquer comment creer un tel timer
D'avance merci.
PS: je sais que la creation d'un mulitithread serait mieux mais aussi plus compliquer cependant si vous pouvez me dire exactement comment creer un thread qui demarre au clic du premier bouton et qui s'arret au clic du second je ne suis pas contre.
Ecriture et lecture de fichier, il y en a plein mes sources et c'est hyper simple:
DWORD d;
d = 0; // POUR CONTROLE ULTERIEUR
ReadFile(hfl, ptrData, nbrOctetsAlire, &d, 0);
Suffit de regarder dans d combien il y a eu d'octets de placés à l'adresse de ptrData.
WriteFile fonctionne exactement sur ce modèle.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 23 mars 2006 à 01:20
CloseHandle n'arrete pas un thread, ce serait:
TerminateThread() : méthode sauvage, cas d'extrème urgence.
ExitThread() : un peu plus propre mais encore bof bof.
Indiquer au thread de sortir proprement, exemple en positionnant un indicateur que le thread lira régulièrement sinon en utilisant les méthodes de synchro du système (lire Richter, le sujet est très vaste).
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 24 mars 2006 à 20:32
Ok Brunews je suis en traint d'essayer de ramanier la source que tu m'a filer pour faire quelque chose de propre (ou au moins essayer).
Par contre je ne sait pas a koi sert le type
LPDWD pdwd
il est present dans la Le thread et sert a pperement a afire le lien avec les autres fonctions.
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 24 mars 2006 à 21:24
Oui merci je en effet je n'avait pas vu.
Bon voila j'ai terminer mon programme test qui me permet de verifier que j'ai bien compris ou non .
Je la poste donc si tu peux y jeter un coup d'oiel se serait sympa. Je penses partir sur cette base pour mon Thread pour mon prog principal. Ce thread se contente d'ecrire des nombre dams un fichier et il s'arret quand on pres le bouton stop (ce qui est en fin de compte prof de ce que je veux faire).
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 24 mars 2006 à 21:26
Voila surtout n'hesite pas a me dire tout ce qui ne va pas. Une fois ces erreurs corriger penses tu (en tant qu'adiministarteur) qu'il serait interessant que je poset mon code.
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 24 mars 2006 à 21:34
Desole en fait suite a ton message sur le lparam je n'ai pas tilter et en fait je crois bien qu'ici il est inutile. Voici donc ma source revu. Et je crois que j'ai oublier de suppirmer le thread mais je ne suis pas sur.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 24 mars 2006 à 21:53
bstop = 0; Quand le thread le regarde ?
Event button doit retourner 0.
Faut coder cohérent, tout API avec FILE* tout d'un coup au milieu, ça fait bizzare.
Le fichier devrait être ouvert et fermé par le thread s'il n'y a que lui qui s'en sert.
TerminateThread est réservé aux cas d'extreme urgence, tache de faire sortir le thread proprement (bstop = 0; et WaitForSingleObject() derrière).
Peut-etre pas utile de poser en source ce qui restera somme toute un exercice perso.
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 27 mars 2006 à 18:26
Salut BruNews alors deja je teins a te remercier pour tes remarques toujourd aussi constuctives. Alors voial j'ai retravailler mon code en essayant de suivre au mieux toutes tes remarques. Cependant je doit te prevenir que je n'ai pas changer le point suivant:
"Faut coder cohérent, tout API avec FILE* tout d'un coup au milieu, ça fait bizzare."
Je sais que ma facon de code et loin d'etre academique et que je fais pas mal de connerie et de truc biazare mais c'est aussi [arce que j'apprends sur le tas. Ben oui tu sais je n'ai pas eu la chance de suivre des cours de c++ et donc par consequent j'essaye de me debrouiller tant bien que mal. Hors je sais qu'il existe les fonction createfile, writefile et read file pour creer et ecrie et liredans les fichiers par contre il faut que j'apprenne a m'en servir et si j'ai pu trouver de la doc sur create file ben il n'en est pas de meme pour writefile et readfile et donc en attendant mieux je fait avec les moyens du bord.
Bon je te joint ma nouvelle source, si tu peux y jeter un oeil pour verifier qu'il n'y a pas de grsosse connerie. D'avance merci
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 27 mars 2006 à 21:01
Euh Brunwws, juste un truc qui n'a pas reellement de rppart avec ca mais pourraiy tu me dire ou je peux trouver ta source de comparaison flux/win32 car cela m'interesse, mon programme devant ecrire les donnes rapidement dans le fichiers. D'avance merci