這裏有很多問題都是關於如何暫停後臺線程的JavaFX應用程序線程,但我想要的是相反的!等待JavaFX應用程序線程完成處理事件?
我想測試一系列關鍵輸入需要多長時間才能完全處理。我正在使用用於JavaFX的Automaton測試庫,並且editor.type(key)生成由應用程序處理的keypress事件。這裏有許多的嘗試之一:
long start = System.nanoTime();
editor.type(AGUtils.LEFT_ARROW);
editor.type(AGUtils.LEFT_ARROW);
editor.type(AGUtils.RIGHT_ARROW);
editor.type(AGUtils.RIGHT_ARROW);
FutureTask<Callable> t = new FutureTask<>(...);
Platform.runLater(t);
while (!t.isDone()) { } // wait for the FutureTask to be called
long end = System.nanoTime();
然而,似乎在FX應用程序線程可能會處理FutureTask它處理的按鍵事件的其餘部分之前。
TLDR:我想精確測量JavaFX應用程序線程何時完成處理我生成的四個按鍵事件。
我該怎麼辦?謝謝!
是指這樣一個問題:http://stackoverflow.com/questions/7939257/wait-until-all-threads-finish-their-work -in-java/36797569#36797569 –