Déefinir le temps d'éxécution d'une boucle - Java - Programmation
Marsh Posté le 22-02-2005 à 20:23:56
La javadoc donne un lien vers How to Use Progress Bars.
Marsh Posté le 23-02-2005 à 15:14:10
Il va falloir utiliser les threads pour faire une barre de progression.
Apres pour la barre de progression il y a plusieurs solutions
- soit la progession se fait en fonction de l'avancement réel de la tache ce qui implique d'en connaitre la durée ou un volume de donnée échangé ou etc ...
- soit il y a juste un mouvement dans la barre mais qui ne represente pas l'avancement réel
apres reste plus qu'à mettre en place !!
Marsh Posté le 23-02-2005 à 15:38:29
L'avancement réel semble pouvoir être determiné : 70^4 itérations.
Bien entendu, on pourrait techniquement faire l'économie de threads et de communication/publication de l'état d'avancement de la boucle en faisant un "push" plus ou moins dégueu au coeur de la boucle même...
Avec coups de pelle à clous à la clé je suppose
Marsh Posté le 23-02-2005 à 16:28:45
sircam de toutes façon, y'a pas trop d'autre choix que ça.
à moins de publier une variable volatile représentant l'avancement et un truc qui va la lire toutes les demi secondes, mais c'est un poil trop complexe pour un débutant je pense.
Marsh Posté le 23-02-2005 à 17:01:13
Coupler la business logic à l'affichage, on l'a tous fait un jour, mais bon... D'un autre côté, la variable volatile n'a rien de compliqué. Reste le thread qui va lire toutes les 1/2 secondes; faut voir si le gars est à l'aise ou pas, mais c'est l'occasion d'apprendre les threads.
Marsh Posté le 23-02-2005 à 17:04:29
sircam a écrit : |
nan, mais s'il fait ça "activement" depuis la boucle, il doit au moins faire un observateur pour ne pas coupler.
Marsh Posté le 02-05-2005 à 15:35:22
mais est ce qu'il est possible de connaitre la durée d'un boucle lorque celle si est reccurssive. Exemple:
void rechercheEnfant(Personne personne)
{
}
Marsh Posté le 02-05-2005 à 15:40:34
void rechercheEnfant(Personne personne)
{
List enfant = personne.getEnfant();
Iterator i = enfant.iterator();
while(i.hasNext())
{
Personne enfant = i.next();
if (enfant.getEnfant() != null)
rechercheEnfant(enfant);
}
}
}
Comment pourrait on connaitre la durée d'une telle boucle pour faire un JProgressBar
Marsh Posté le 22-02-2005 à 20:02:53
Bonjour,
j'ai une boucle: for( k1 = 0; k1 < 70; k1++){
for( k2 = 0; k2 < 70; k2++){
for( k3 = 0; k3 < 70; k3++){
for( k4 = 0; k4 < 70; k4++){ }}}}
Je voudrais conaitre son temps d'éxécution(en minutes,seconde et avec une JProgressBar(barre de progression)) quii je sais est assez long.
Comment dois je m'y prendre?Avez-vous une idée?
Merci