Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading JavaFX-如何在不冻结UI的情况下等待?_Multithreading_Javafx_Thread Sleep - Fatal编程技术网

Multithreading JavaFX-如何在不冻结UI的情况下等待?

Multithreading JavaFX-如何在不冻结UI的情况下等待?,multithreading,javafx,thread-sleep,Multithreading,Javafx,Thread Sleep,我知道关于这个话题有一些问题,但这些都没有帮助我找到解决办法。 我有两个时间轴动画,我想在延迟几秒钟后执行它们。我给你举个例子: 每次单击鼠标时,动画将重置为默认延迟时间,比方说5秒。如果我什么都不做,时间就要飞逝到零点了。当我到达0秒时,动画必须开始。等等 当然,在任务完成之前,Thread.sleep会使我的UI冻结。 我不知道是否应该使用Thread、Task或其他类,因为工作没有那么复杂 有很多方法可以做到这一点,但我在多线程方面没有经验,我想学习如何有效地实现它。非常感谢你们 您可以使

我知道关于这个话题有一些问题,但这些都没有帮助我找到解决办法。 我有两个时间轴动画,我想在延迟几秒钟后执行它们。我给你举个例子:

每次单击鼠标时,动画将重置为默认延迟时间,比方说5秒。如果我什么都不做,时间就要飞逝到零点了。当我到达0秒时,动画必须开始。等等

当然,在任务完成之前,Thread.sleep会使我的UI冻结。 我不知道是否应该使用Thread、Task或其他类,因为工作没有那么复杂


有很多方法可以做到这一点,但我在多线程方面没有经验,我想学习如何有效地实现它。非常感谢你们

您可以使用

timeline.setDelay(...);
要在时间线开始之前指定延迟

timeline.setCycleCount(Animation.INDEFINITE);
让它无限期地重复,并且

timeline.playFromStart();

使其在指定的延迟后从头开始。

您不需要任何线程:动画API已经具备了您所描述的各种操作所需的一切。不过你的描述不是很清楚。你能在这篇文章中展示一下你目前掌握的一些代码,并更清楚地解释一下你想要发生什么吗。据我所知,如果用户不做任何事情,动画会重复运行,但如果用户单击鼠标,动画会暂停一段时间,然后从头开始重新启动?没错。我认为我的代码在这种情况下是不必要的。我只需要一种方法或者几个方法名。通过显示一些代码来回答问题要容易得多。没有人真的想从头开始编写代码来解决您的问题,因此,如果您提供了一个完整的、可执行的示例,并没有您真正理解的部分,那么回答起来就容易多了。不要让帮助你变得比需要的更困难。对不起?我可以很容易地回答这个问题:但是根据我的经验,如果我回答了一个如此糟糕的问题,那么将会发生的事情就是你会回答“不”,这不是我的意思,所以它最终会浪费我们两个人的时间。你想要免费的帮助吗?如果是这样的话,让人们更容易帮助你。如果没有,首先不要问。好吧,如果你愿意,我会提供一个大致的答案。@Rouman一般来说,如果他们回答了你的问题,你应该接受答案,因为到目前为止你还没有接受任何答案。如果其他用户有类似的问题,这样做可以帮助他们找到答案。在这种情况下,这可能是一个没有实际意义的问题,因为我真的不相信你的问题足够清楚,可以帮助其他人。你的观点可能会有所不同,但你的其他一些问题的答案应该被接受。问题是,之前的答案对我没有那么大的帮助。他们给了我一些想法,但根本没有解决我的问题。我很感激你从上面的回答,但这一个也帮不了我。这就是为什么我对帮助社区不感兴趣,我只是不在乎,这是一个很好的董事会,我要找一个更好的董事会。似乎这个平台上有太多的专家,即使问题包含了所需的一切,他们也无法给出一些好的建议。@例如,鲁曼你之前的评论与你对的回答不一致。我认为我的回答可能没有帮助,如果没有更仔细的问题,很难提供一个有用的答案。也许如果你一直得不到你想要的答案,你应该更仔细地考虑你的问题是否有助于得到有用的答案。这个建议应该能帮助你得到你正在寻求的帮助。