05. august 2004 - 23:09Der er
11 kommentarer og 1 løsning
sleep() UDEN tråd
Kan man ikke få Java til at sove ligesom i php hvor man bare bruger sleep(2). Jeg har måtte lave et hack med en thread, men det virker lidt dumt ! Jeg vil bare have programmet til at spytte noget data ud med tilfældige mellemrum. Se kodestumper nedenfor:
... private void theEvent() { //Goes 20 times for(int i=1; i<21;i++) { //Print e.g. "8: false" printArea.append(i + ": ");
Sleep p = new Sleep(2); printArea.repaint(); } } .... class Sleep extends Thread { Sleep(int seconds) { try{ this.start(); this.sleep((new Random().nextInt(seconds))*1000 ); } catch(Exception e) { System.out.println("Fejl"); } } }
Hvis du arbejder med GUI, kører GUI'en i sin egen tråd. Hvis du inde i den tråd begynder at skrive Thread.sleep(long time) låser du GUI'en og du ser ikke opdateringerne før din tråd er kørt igennem...
Hvis det virkede før med din kode så virker det også med en simpel Thread.sleep, fordi din kode startede nemlig ikke en tråd, den ventede bare i constructor til et objekt som kunne startes som tråd men ikke blev det.
glem den sidste kommentar - du starter jo tråden i constructor
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.