Comment redonner temporairement la main au système ?
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007
-
23 nov. 2004 à 19:12
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
11 déc. 2004 à 12:53
mon programme est destiné au calcul scientifique. il calcule donc à tour de bras sans relâche, les opérations pouvant durer des heures voire des jours puisqu'il s'agit de très grands nombres (gérés avec une classe spéciale mais peu importe). mon problème est que le programme utilise toutes les ressources du système pour calculer et, par exemple, ne permet pas aux résultats intermédiaires de s'afficher. j'aimerais trouver une fonction pour redonner temporairement la main au système (genre DoEvents en VB) sachant que j'utilise Visual Studio 6...
merci pour votre aide!!!!
A voir également:
Comment redonner temporairement la main au système ?
cs_Vincent12
Messages postés3Date d'inscriptiondimanche 14 novembre 2004StatutMembreDernière intervention24 novembre 2004 24 nov. 2004 à 11:17
Si ton appli est multi-thread, ca devrait fonctionner sans
problème (voir peut etre a ajouter un sleep(..) histoire de
redonner un peu de temps au système)..
Si ce n'est pas le cas, la gestion de la boucle des message n'est
jamais appelée (donc pas de gestion du WM_PAINT -> pas
de mise à jour de la fenêtre).. puisque tu ne rends pas la main
a ton process...
Dans ce cas je crois qu'il faut appeler UpdateWindow(hwnd),
ou alors faire un SendMessage(hwnd, WM_PAINT) qui à la
différence du PostMessage ne rend la main qu'une fois la
fonction executée...
Mes souvenirs dans ce domaine sont un peu vieux ... si qqun
pouvais confirmer...
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 11 déc. 2004 à 11:36
Mon appli n'est pas multithread justement. Mais je ne veux faire de "multithreading" car mon prog perdrait en vitesse...
Vincent12, ta piste m'intéresse : comment mettre à jour une fenêtre (ms-dos) ? comment utilise-t-on UpdateWindow(hwnd) et SendMessage(hwnd, WM_PAINT) ?
qqu'un pourrait-il me coder un ptit exemple?