Bonjour,

Dans un programme une méthode prend beaucoup de temps à s'exécuter et je désire que l'appel de cette méthode ne bloque pas le reste de l'application.

Alors j'ai essayé la solution suivant mais elle ne fonctionne pas.

Voici le thread suivant qui contient la méthode bloquante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public class Traitement extends Thread
    {
        /**
         * Méthode pour charger en mémoire les différents clients disponibles dans la base de données
         */
        public void loadClientsRecolte() {
            ...
        }

    }
Voici le lancement du thread :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Traitement traitement = new Traitement();
 
// lancement du thread
new Thread(traitement).start();
Et voici l'appel de la méthode qui reste bloquante malgré cette implémentation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
... // code de l'appli

traitement.loadClientsRecolte(); // appel de la méthode

... // code de l'appli bloqué à cause de l'appel précédent
Comment faire cela ?
Existe-t-il une autre solution ?

Merci d'avance.