Accueil > Forum > > > > Thread et actualisation de l'affichage
Thread et actualisation de l'affichage
mardi 15 novembre 2005 à 18:54:02 |
Thread et actualisation de l'affichage

jul39dole
|
Bonjour, voici mon problème : (sous C++, programmation API windows) - Je créé un boite de dialogue avec DialogBox, jusque là tout va bien. - Un bouton permet de lancer un calcul :
case WM_COMMAND : switch(LOWORD(wParam)) { case IDC_CALCULER: On appelle une fonction qui lance le thread de calcul Pendant ce temps l'exécution continue ici :
while (p.JeCalcule) { Sleep(100); Et affichage de la progression. } ...
- Cependant, cela bloque les messages de gestion de l'affichage (les WM_PAINT je suppose), et la fenêtre se fige.
Auriez-vous une solution à me proposer ?
D'avance merci.
|
|
mardi 15 novembre 2005 à 19:16:20 |
Re : Thread et actualisation de l'affichage

BruNews
|
Sleep en boucle, normal que ça bloque, non ? Si c'est la progression de ce que fait le thread, mets l'affichage de cette progression DANS le thread. ciao... [ Lien ]BruNews, MVP VC++
|
|
mardi 15 novembre 2005 à 20:25:33 |
Re : Thread et actualisation de l'affichage

jul39dole
|
Après test, avec ou sans le Sleep, cela ne change rien.
Il faut en effet que l'affichage de la progression se fasse dans le thread. Comment dois-je faire ? Exporter mes handles de la thread? et envoyer des messages PAINT pour redessiner la fenêtre ?
|
|
mardi 15 novembre 2005 à 20:55:57 |
Re : Thread et actualisation de l'affichage

BruNews
|
Clair que ce n'est pas Sleep par lui même qui bloque mais bien sur la boucle. Donne hwnd de progressBar ou autre au thread, soit par une var globale soit en param du thread. Par un pointeur de struct, on peut passer 1000 params au thread si on veut. Attention toutes fois qu'en cas de struct, elle ne doit pas être sur pile et disparaitre illico après appel de CreateThread sinon badaboum. Fais un VirtualAlloc au besoin, caste en une struct et passe au thread, thread fera un VirtualFree sur son param en sortie et tout ira bon. ciao... [ Lien ]BruNews, MVP VC++
|
|
mardi 15 novembre 2005 à 22:13:01 |
Re : Thread et actualisation de l'affichage

jul39dole
|
heu je passe déjà un pointeur sur une classe à mon thread, donc je vais inclus les hwnd dans ma classe. Pourquoi un VirtualAlloc plutot qu'un simple new ?
|
|
mardi 15 novembre 2005 à 22:31:04 |
Re : Thread et actualisation de l'affichage

jul39dole
|
mais en fait le pb c'est qu'il faut séparer le programme en deux parties : - une partie interface graphique - une partie noyau en donc en s'occupant de l'interface dans le kernel, la séparation n'est plus aussi nette...
|
|
mardi 15 novembre 2005 à 22:46:40 |
Re : Thread et actualisation de l'affichage

BruNews
|
Réponse acceptée !
pourquoi VirtualAlloc: parce que c'est écrit API dans la question, rien de plus. #define MSGAVANCE (WM_USER + 100) dans thread tu fais des PostMessage(hwndcible, MSGAVANCE, 0, 0); que tu traites dans la fenetre pour dessiner avancement, ainsi tu gardes la séparation. ciao... [ Lien ]BruNews, MVP VC++
|
|
mardi 15 novembre 2005 à 22:48:08 |
Re : Thread et actualisation de l'affichage
|
Cette discussion est classée dans : case, affichage, actualisation, thread, calcul
Répondre à ce message
Sujets en rapport avec ce message
implicit declaration of function `int getchar(...)' [ par cognac ]
À chaque fois que j'utilise getch(); j'obtien le message suivant:getch();Voici mon programme (en fait mon exercice):#include //bibliotheque d'entree
getch [ par portoroz ]
g poser un message je n'arrive pas a le rretrouver.je suis sous environnement dos, avec DEV C++ telecharger sur internet en version us.comprend pas po
Affichage CDialog dans un autre thread [ par sanouk ]
Bonjour,Je veux afficher une boite de dialogue dans un thread secondaire. J'utilise pour cela CWinThread qui créé ma boite de dialogue.Dans ma classe
Affichage dans MFC [ par guillotonl ]
Je désire afficher des résultats dans une fenètre de calcul.Le problème, c'est que je ne connais pas le nombre de résultats a afficher avant de faire
erreur a l'execution [ par vangeurmasker ]
J'ai créé un projet sous VC++ 6 pour faire une calcullette qui annalyse une chaine entrée. Lors de la compilation je n'ai aucune erreur. C'est a l'exe
pb d'affichage ProgessBar à partir d'un Thread [ par bejeau_js ]
Bonjour à tous,Je travaille actuellement sur une application qui génère un fichier résultat sous form d'un taleau Excel...lorsque j'ai un grand nombre
Threads, Synchronize, [ par Narcissus ]
Bonjour à tous ça va être ma première manifestation sur Code-Sources... lol</
pb d'actualisation d'affichage. [ par gege1024 ]
j'ai un programme qui fais bcp de choses (lol)pour pimenter le tout j'ai fais un menu pour personnaliser l'interface (couleur du fond, couleur des con
Affichage trop rapide [ par malik7934 ]
Hello,Je reviens à la charge avec une question que j'ai déjà posé mais pour laquelle j'ai pas eu de réponse qui me permette de progresser...Mon prog f
affichage CDialog dans plusieurs thread [ par manyyy67 ]
Bonjour, je suis débutant en mfc voila j'ai un problème j'ai une boite de Dialog CInformationDlg qui est crée dans un thread d'un gros programme profe
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|