有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Eclipse中处于非活动状态后执行操作

我正在eclipse中编程一些视图和编辑器,并遇到以下问题

我怎样才能让某件事在一段时间的“不活动”后发生

所以我的问题是这个。我有一个视图,显示某个模型的信息。模型在更新时发送事件,但有时会发送大量事件。我希望将事件设置为一个计时器,而不是让视图在每个事件上都重新绘制,只有当计时器过期而没有其他事件进入时,我才希望实际更新视图。然而,我找不到一种方法来做到这一点。我能找到的最好的方法是Display.timerExec方法,但我必须在每个事件上调用它,然后检查一些时间戳,看看是否有另一个事件在同一时间到达

我看过普通的java定时器类,但它们似乎也没有为我提供可重置的定时器

有人知道我怎样才能达到我想做的吗


共 (2) 个答案

  1. # 2 楼答案

    您可以通过一个任务桶和一个读取该桶的线程来实现这一点。跟踪上次添加到铲斗的时间。让线程在您想要的延迟时间内休眠。当它醒来时,应该查看最后一次添加的时间是否超过延迟,如果超过延迟,则执行任务

    以下是我在Sapphire项目中的实施:

    http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.sapphire/plugins/org.eclipse.sapphire.ui/src/org/eclipse/sapphire/ui/DelayedTasksExecutor.java?view=markup&revision=1.2&root=Technology_Project

    如果您能够遵守EPL条款,请随意复制。否则,请使用这些概念构建您自己的实现