首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以使用Java timer类进行定时数据收集吗?

我可以使用Java timer类进行定时数据收集吗?
EN

Stack Overflow用户
提问于 2014-04-10 10:20:38
回答 1查看 104关注 0票数 0

我正在编写一个程序,在试验期间收集一系列角度输入,并将这些输入保存到带有相应时间戳的文件中。

例如:

1秒260度

2秒45度

3秒60度

等。

在运行试验时,如果需要,用户应该能够暂停和重新启动或完全中止试验。

我遇到了暂停功能的麻烦。我一直在使用Java Timer和TimerTask类对输入进行计时,因为它提供了我正在寻找的许多功能(延迟一段时间后启动任务,仅以特定的时间间隔记录数据,等等)。

在我的timerTask中,我一直将收集到的角度和时间存储在并行数组中,然后在试验结束时,将这些数组写入一个文件。

但是,当我通过timer.cancel()函数“暂停”我的timerTask并重新启动它时,旧的数据数组被丢弃。我试图通过保存“已暂停”数组,然后在重新启动的试验结束时将其与“重新启动”的数组合并来避免这个问题,但这并没有考虑到试验可能会被多次暂停的事实。

timer/timerTask类是否是用于此作业的错误类?在Java中有没有更好的方法来收集基于时间的数据?或者我只是忽略了一个解决方案?

EN

回答 1

Stack Overflow用户

发布于 2014-04-10 10:29:20

因为接口指定了Timer.cancel()

终止此计时器,丢弃所有当前计划的任务。

实现你想要的功能的最简单的方法可能是存储一个“已暂停”的布尔值,并在用户暂停/取消暂停时切换它。然后从任务中检查布尔值的状态,如果试验暂停,则简单地执行return;。计时器仍将每秒触发一次,但只要试验暂停,就不会发生任何事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22977536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档