java – 设置一个运行一段时间的方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 设置一个运行一段时间的方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1652字,纯文字阅读大概需要3分钟。
内容图文
![java – 设置一个运行一段时间的方法?](/upload/InfoBanner/zyjiaocheng/778/76c984e9b0174c40bcbf8b82bcae7407.jpg)
我得到一些帮助,如何使方法运行5分钟然后停止,请通过布尔函数调用.我可以让方法运行正常,但似乎无法设置任何有效的计时器,该方法要么在被调用时连续运行,要么根本不运行.我在这里搜索并找到了一些建议,但到目前为止还没有运气.
以下是调用该方法的代码部分,满足布尔条件
public void start()
{
super.start();
drawing(true);
}
public void msgCollision(Actor actor, String s, String s1)
{
if(boom)
{
t1 = Time.current();
t2 = Time.current() + 30000L;
if(t1 < t2)
MarkTarget();
} else
if(!boom)
{
Point3d point3d = new Point3d();
super.pos.getTime(Time.current(), point3d);
Vector3d vector3d = new Vector3d();
getSpeed(vector3d);
vector3d.x = vector3d.y = vector3d.z = 0.0D;
setSpeed(vector3d);
我是编程和java的新手,所以请原谅我,如果我错过了一些明显的东西,它让MarkTarget()方法运行5分钟我遇到了麻烦,它似乎在用t1<来调用boolean boom时连续运行. t2,如果我将它改为t2< t2,它就好像永远不会达到t2. t1然后它根本没有像我期望的那样运行. 每次代码运行时是否重置时间?所以在代码再次运行之前永远不会达到5分钟而TimeCurrent()会继续运行吗?或者它不是那样工作?我希望从发布繁荣时开始计算5分钟. 谢谢你的帮助
解决方法:
发生这种情况是因为在实例化变量后立即将t1的值评估为t2的值.
if(boom)
{
t1 = Time.current(); //t1 is now the current time
t2 = Time.current() + 30000L; //t2 is now the current time + 5 minutes
if(t1 < t2) //Is t1 smaller then t2? Yes it is!
MarkTarget(); //call the function
//Anything else? no so we will have had 1 call to it
}
你可以这样做,如果你真的想这样做:
if (boom)
{
t1 = Time.current();
t2 = t1 + 30000L;
while (t1 < t2) {
MarkTarget();
t1 = Time.current();
}
}
用这种方式意识到,MarkTarget()会在很长一段时间内被调用5分钟.如果你想要只调用一次然后等待5分钟:
MarkTarget();
while (t1 < t2) {
t1 = Time.current();
}
内容总结
以上是互联网集市为您收集整理的java – 设置一个运行一段时间的方法?全部内容,希望文章能够帮你解决java – 设置一个运行一段时间的方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。