Marv04 Geschrieben 17. Februar 2015 Geschrieben 17. Februar 2015 Tachen Zusammen, habe ein kleines Problem, ich habe mir ein kleines programm geschrieben aber leider hängt es sich bei einer funktion immer auf und es reagiert nicht mehr. public void ruhemodus(int timeout) throws Exception { ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); ScheduledFuture<Exception> f = executor.schedule(new Callable<Exception>() { @Override public Exception call() { try { System.out.println("erg: "+timeout); shutDown.exec("rundll32 powrprof.dll,SetSuspendState"); System.exit(timeout); return null; } catch (IOException e) { return e; } } }, timeout, TimeUnit.SECONDS); throw f.get(timeout, TimeUnit.SECONDS); } Das ist der code wo das problem auftritt. Es soll folgendermaßen funktionieren, der benutzer gibt eine zeit ein, diese wird in sekunden umgerechnet und der Pc soll dann zum beispiel in 1 stunde in den ruhemodus versetzt werden.. aber sobald ich die eingabe bestätige reagiert das programm nicht mehr. Weiß jemand woran es hier scheitert ? Zitieren
mfk'); DROP TABLE Users;-- Geschrieben 18. Februar 2015 Geschrieben 18. Februar 2015 Der Aufruf von get bewirkt, dass das Programm an dieser Stelle blockiert, bis das Ergebnis des Future da ist. Dass das Future eine Exception zurückgibt, sieht mMn seltsam aus. Aber ich kenne Java nicht gut genug, um das zu beurteilen. Vielleicht ist das "Best Practice". Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.