Bonjour à tous,
mon programme traite une liste de "gros" fichiers. J'utilise un thread de lecture qui empile les "choses à traiter" dans une ArrayList. Ensuite un thread d'écriture dépile, traite et écrit dans des fichiers en sortie.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
for (String fileName : allFilesNames) {
 
            // lecture du fichier
            Lecture lec;
            try {
                lec = new Lecture(fileName, lstChunks, '1');
            } catch (FileNotFoundException ex) {
                myErrorMessageDialog(COMMAND_LINE, "File not found : " + ex);
            }
 
            // traitement
            Traitement wld = new Traitement (this, lstChunks, datFileName, datSelection,
                    xmlParam, gridParam, ouputFileName, convertOptions, convertCSV);
            try {
                wld.join();
            } catch (InterruptedException ex) {
                myErrorMessageDialog(COMMAND_LINE, "jMenuConvertAllSelectedFiles error : " + ex);
            }
        }
Je veux suivre l'avancement du travail avec une progressBar mais elle est figée pendant le traitement.
Mon souci vient sans doute du "join()" ci-dessus qui doit bloquer mon programme principal où se trouve la ProgressBar. J'utilise le join() pour attendre la fin du traitement d'un fichier avant de passer à l'autre.

Avez vous une idée pour résoudre mon problème ?
Vous avez compris que je débute avec les threads...
Merci