我有一种方法必须每0.5秒拍摄一次屏幕的照片,并将图像保存在HD上的位置。但是我需要他在上午11:55至下午4:55之间跑步。到下午5:00我只需要开始任务,我无法停止它。我的疑问是:我该如何安排线程仅在一定时间内运行。publicclassMain{privateToolkita=Toolkit.getDefaultToolkit();privateDimensionscreenSize=a.getScreenSize();privateRectanglescreenLimit=newRectangle(screenSize);privateRobotrobot;privateFilefil
我们想要安排一个java进程运行到特定的时间间隔。目前我正在考虑使用TimerTask来安排这个过程。在每个循环开始时,将检查当前时间,然后与给定时间进行比较,如果时间已过,则停止该过程。我们的代码如下所示:importjava.util.Timer;importjava.util.TimerTask;publicclassSchedulerextendsTimerTask{publicvoidrun(){//comparewithagiventime,withgetCurrentTime,anddoaSystem.exit(0);System.out.println("Output"
我正在使用GWT和GoogleAppEngine。我有一系列记录,我想每30分钟更新一次。在ServiceImpl中,我有以下代码:newTimer().schedule(newTimerTask(){@Overridepublicvoidrun(){try{Thread.sleep(30000);}catch(InterruptedExceptione){e.printStackTrace();}result=updateFeeds();}},30000,Long.MAX_VALUE);当我运行应用程序时,当我得到:com.google.gwt.user.server.rpc.Une
我是Java的新手,我正在尝试生成一个每5到10秒运行一次的任务,因此在5到10之间的任何时间间隔内,包括10。我尝试了几件事,但到目前为止没有任何效果。我的最新成果如下:timer=newTimer();Randomgenerator=newRandom();intinterval;//Thetaskwillrunafter10secondsforthefirsttime:timer.schedule(task,10000);//Waitforthefirstexecutionofthetasktofinish:try{sleep(10000);}catch(InterruptedE
我正在使用Timer和TimerTask长时间轮询聊天应用程序的新消息。我想研究两种“略有”不同的可能性:1:定时器声明为局部变量publicListgetLastMessages(...){[...]Timertimer=newTimer(true);//**Timerdeclaredaslocalvariable**while(someCondiction){MessagesTimerTaskreturnMessagesTask=newMessagesTimerTask([...]);timer.schedule(returnMessagesTask,6000);synchroni
我需要在预定义的时间长度内运行一些代码,当时间到了它需要停止。目前我正在使用TimerTask来允许代码执行一段设定的时间,但这会导致代码创建无休止的线程,而且效率不高。有更好的选择吗?当前代码;//CalculatethenewlinestodrawTimertimer3=newTimer();timer3.schedule(newTimerTask(){publicvoidrun(){ArrayListCoords=newArrayList();intx=Float.valueOf(lastFour[0]).intValue();inty=Float.valueOf(lastFou
Timer(java.util.Timer)文档将cancel方法描述为影响Timer的方法,它指出定时器注销后不能使用。所以我实例化了一个新的Timer。为什么它不允许我在此示例中重新使用参数task0?我什至没有调用被描述为使任务符合GC条件的purge。在可能被解释为其他情况之前,我声称Timer类不应影响仅作为其参数的TimerTask对象。importjava.util.Timer;importjava.util.TimerTask;publicclassTester{publicstaticvoidmain(String[]args)throwsInterruptedExc
如何在运行时更改定时器的周期?Timertimer=newTimer();timer.scheduleAtFixedRate(newTimerTask(){publicvoidrun(){//readnewperiodperiod=getPeriod();doSomething();}},0,period); 最佳答案 您不能直接执行此操作,但您可以取消Timer上的任务并重新安排所需的时间。没有getPeriod方法。 关于java-如何在运行时更改我的TimerTask的执行周期?我
我有一个看起来像这样的函数:privateTimertimer=newTimer();privatevoiddoSomething(){timer.schedule(newTimerTask(){publicvoidrun(){doSomethingElse();}},(1000));}我正在尝试为我的代码编写JUnit测试,但在特别测试这段代码时,它们的行为不如预期。通过使用EclEmma,我能够看到我的测试从未触及doSomethingElse()函数。我如何在JUnit中编写测试,等待足够长的时间让TimerTask完成,然后再继续测试? 最佳答案
我想让线程在特定的准确时间执行(例如:2012-07-1113:12:24和2012-07-1115:23:45)我检查了ScheduledExecutorService,但它只支持在第一次运行后的特定时间段后执行,我没有任何固定时间段,而是我有时间从数据库中执行任务。在上一个不同问题的问题中here,TimerTask是解决方案,但显然我不能使线程成为TimerTask作为Runnable和TimerTask都有方法run需要实现的。这里的问题是,如果我让线程扩展TimerTask并实现run(),这行得通吗?如果没有,那么怎么可能做我想做的事呢? 最佳答