Veröffentlicht 17. Februar 201510 j 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 ?
18. Februar 201510 j 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".
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.