[Thread] comment attendre la fin d'un thread?
Bonjour,
Voici mon problème très simple, mais je n'ai aps trouvé de solutions depuis ce matin, d'où la necessité de votre aide!
Voici un bout de code pour commencer:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
public class BlaBla {
...
public ArrayList lancerAlgo(ArrayList entrees, int tailleMiniMots, int tolerance, int seuil) {
Algo algo = new Algo();
algo.setEntrees(entrees, tailleMiniMots, tolerance, seuil);
algo.start();
// ICI IL FAUT UN TRUC!
return algo.getResultats();
}
class Algo extends Thread {
private ArrayList entrees = new ArrayList();
private ArrayList resultats = new ArrayList();
private int tailleMiniMots = 4;
private int tolerance = 1;
private int seuil = 70;
public void setEntrees(ArrayList entrees, int tailleMiniMots, int tolerance, int seuil) {
this.entrees = entrees;
this.tailleMiniMots = tailleMiniMots;
this.tolerance = tolerance;
this.seuil = seuil;
}
public ArrayList getResultats() { return resultats; }
public void run() {
int nbTask = entrees.size();
vp = new VeuillezPatienter(parent, "Analyse en cours", nbTask);
for(int i=0; i<entrees.size(); i++) {
ArrayList resultatsUneEntree = traiterUneEntree((String) entrees.get(i), tailleMiniMots, tolerance, seuil);
resultats.addAll(resultatsUneEntree);
resultats.add(new UneReponse());
vp.updateProgressBar(null);
}
vp.destroyProgressBar();
}
} |
Tout marche, ma barre de progression s'affiche correctement, mais la liste de retour est vide, car quand je fait algo.start(), ma liste est vide, d'où mon problème pour le getResultats qui est la ligne suivante.
Je souhaiterai mettre en pause ma première méthode, afin d'attendre la fin du thread pour récupérer les résultats remplis
Des idées?