【发布时间】:2016-08-17 16:53:54
【问题描述】:
这里有很多问题是关于如何暂停 JavaFX 应用程序线程以作为后台线程,但我想要相反的!
我正在尝试测试完全处理一系列关键输入需要多长时间。我正在为 JavaFX 使用Automaton 测试库,并且 editor.type(key) 生成一个按键事件,该事件由应用程序处理。这是众多尝试之一:
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 应用程序线程何时完成对我生成的四个按键事件的处理。
我该怎么办?谢谢!
【问题讨论】:
标签: java multithreading testing javafx concurrency