JavaFX 中的 Platform.runLater 和 Task:何时使用 Which
简介
中JavaFX,管理线程操作可能会令人困惑。常见的困境之一是确定何时使用 Platform.runLater(Runnable);或用于从非 UI 线程执行 UI 相关任务的任务。本文旨在澄清差异并提供适当用法的指导。
使用区别
Platform.runLater(Runnable);:
任务:
黄金法则
作为一般规则,使用 Platform.runLater(Runnable);对于小型且紧急的 UI 任务,而 Task 适合较大或可能阻塞的操作。
此外,需要注意的是 Platform.runLater(Runnable);和 Task 在主 UI 线程中创建新线程。但是,它们以不同的方式管理这些线程。
用例
Platform.runLater(Runnable) 的用例;:
-更新进度条作为临时指示。
-处理鼠标或键盘事件。
-设置工具提示文本。
任务用例:
-执行冗长的计算或网络操作。
-下载或上传数据。
-生成复杂的 UI 元素。
示例:长计算
为了说明实际差异,请考虑执行长时间计算并更新进度条的场景。
Platform.runLater(Runnable);:
虽然使用 Platform.runLater(Runnable) 似乎很诱人;对于此任务,由于性能影响,不建议这样做。该代码会重复更新进度条,可能会导致 UI 冻结。
任务:
使用 Task 可以实现线程隔离。计算在后台线程中执行,进度通过任务的progressProperty()更新,可以绑定到进度条。这种方法可以保持 UI 的响应能力。
以上是JavaFX 线程:'Platform.runLater”与'Task”——您应该选择哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!