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 ?
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".
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden