Forse è il caso che vi spieghi il senso di questo ciclo while(true): si trova nel main, creato per ciclare all'infinito. Il for (int i = 48; i < 58; i++) è creato invece per sondare diciamo 10 contenitori, il cui contenuto, se il relattivo array booleano startLoop[i] è uguale a true, non è altro che un array di dimensione variabile: se uno di questi è diverso da zero, prendo il suo valore n e lo riproduco come suono n.wav. Incremento il relativo j[i]++, cioè passo al valore successivo dell'array contenuto in uno dei 10 contenitori. Continuo a sondare questo array finché non termina la sua lunghezza per poi farlo ripartire dall'inizio: if (j[i] == len[i]) j[i] = 0; Tutto questo vorrei poterlo fare in 1 centesimo di secondo (div = 10), male che vada a livello prestazionale 1 decimo di secondo (div = 100). E' questo il punto, ha senso come cosa o mi esplode tutto ad un certo punto? (Prendete in considerazione il caso pessimo: tutti i 10 contenitori sono attivi, cioè startLoop[i] == true: ciclerebbero tutti in pochissimo tempo, scorrendo i propri array un valore dopo l'altro riproducendo i suoni nel giusto istante di tempo).

In javascript avevo adottato a dire il vero non più while, ma più setInterval...e non avevo considerato il contenuto dei contenitori come array ma come stringhe e le scorrevo come in questo caso: sarebbe una soluzione migliore?

GRAZIE


Codice uguale a quello del post di prima.
codice:
         while(true) {
             for (int i = 48; i < 58; i++) {
                 if (startLoop[i] == true) {
                     len[i] = num[i].length;
                     if (num[i][j[i]] != 0) {
                           snd[num[i][j[i]]].stop();
                         snd[num[i][j[i]]].setFramePosition(0);
                         snd[num[i][j[i]]].start();
                     }
                        j[i]++;
                        if (j[i] == len[i]) {
                            j[i] = 0;
                        }
                 }
             }
             try {
                 Thread.sleep(div);
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
         }