Multithreading 使用JavaFX无限多线程更新GUI

Multithreading 使用JavaFX无限多线程更新GUI,multithreading,user-interface,javafx,chat,data-stream,Multithreading,User Interface,Javafx,Chat,Data Stream,使用inputstream.readUTF()和DataInputStream,我们需要使用一个线程来连续检查null并迭代输入流。根据我在网上的发现,JavaFX不提供任何实现并发或多线程的方法,同时还允许动态更新节点。有什么东西我看过头了吗?因为从流中动态更新节点是不可能的。我尝试执行的任务是获取一个输入流并用接收到的文本填充一个窗格 我试过Platform.runlater,我试过Task,我也试过executor,但我不相信它是我要找的。我很好奇你在网上哪里找到这个。您有参考资料吗?请记

使用inputstream.readUTF()和DataInputStream,我们需要使用一个线程来连续检查null并迭代输入流。根据我在网上的发现,JavaFX不提供任何实现并发或多线程的方法,同时还允许动态更新节点。有什么东西我看过头了吗?因为从流中动态更新节点是不可能的。我尝试执行的任务是获取一个输入流并用接收到的文本填充一个窗格


我试过Platform.runlater,我试过Task,我也试过executor,但我不相信它是我要找的。

我很好奇你在网上哪里找到这个。您有参考资料吗?请记住,使用动画API意味着您正在使用JavaFX应用程序线程。如果您的定期任务处于阻塞状态或长时间运行状态,那么您确实应该使用后台线程。您可以使用
Platform.runLater
将更新发布到UI。
Worker
界面是
Task
实现的,旨在简化此过程。你提到你尝试过这些选择,但不管出于什么原因,它们都不适合你。他们以什么方式失败了?你能提供一份工作吗?请注意,虽然JavaFX中的多线程需要遵循某些规则,但使用它当然是可能的。如果
Platform.runLater
不能很好地工作,另一种解决方案是将一些内容发布到线程安全的数据结构中,如
ArrayBlockingQueue
,并定期使用
时间线检查那里是否有新数据。无论您做什么,都不要弄乱来自多个线程的
观察值。