但是我不能在一个计时器中处理不同的“计时器任务”。我试图将计时器任务对象添加到构造函数中,但是当我将新的计时器任务(RemindTask1)对象作为参数(内部类的实例)传递时,出现编译错误。
以下是它如何处理一项任务:
public class MyTimer {
Timer timer;
public MyTimer(long time) {
timer = new Timer();
timer.schedule(new RemindTask(), time);
}
class RemindTask extends TimerTask {
@Override
public void run() {
/// ...
timer.cancel();
}
}
public static void main(String[] args) {
/// ...
MyTimer myTimer = new MyTimer(5000);
/// ...
}
}
但是我完全被多个任务应该如何创建然后运行所困扰。
public class MyTimer {
Timer timer;
public MyTimer(TimerTask tt, long time) {
timer = new Timer();
timer.schedule(tt, time);
}
class RemindTask1 extends TimerTask {
@Override
public void run() {
/// ...
timer.cancel();
}
}
class RemindTask2 extends TimerTask {
@Override
public void run() {
/// ...
timer.cancel();
}
}
public static void main(String[] args) {
/// ...
MyTimer myTimer = new MyTimer(new RemindTask2(), 5000);
/// ...
}
}
但是这不起作用,我不知道出了什么问题。当我将新的RemindTask2()作为参数传递时,我遇到了编译错误。
我假设“不工作”是指编译器不允许您从静态上下文(main方法)创建内部类的实例。
通常有两种处理方法。
请一个MyTimer实例为您创建其内部类实例。这实际上不是一个选项,因为在构造MyTimer之前,需要存在内部类实例
MyTimer myTimer;
// initialize myTimer
TimerTask task = myTimer.new RemindTask2();
static class RemindTask2 extends TimerTask {
//...
}
我正在开发一个Windows服务应用程序。NET,它执行许多功能(它是一个WCF服务主机),其中一个目标是运行调度的任务。 我选择创建System.Threading。每个操作的计时器,dueTime设置为下一次执行,并且没有时段以避免重新进入 每次操作结束时,都会更改dueTime以匹配下一次计划执行。 大多数操作计划每分钟运行一次,不是一起运行,而是彼此延迟几秒钟。 现在,在添加了一些操作(大
我正在阅读JavaSDK1.3中的计时器 在POSA第2卷的“活动对象模式”中,它被提到如下 JDK1.3引入了一种机制,用于在Timer和TimerTaskjava.util.类中同时执行基于计时器的任务java.util.。当任务的预定执行时间发生时,它将被执行。调度调用在垫片线程中执行,而任务本身在Timer对象拥有的线程中执行。计时器内部任务队列受到锁的保护,因为上面概述的两个线程同时对其
基本上,我想做的是制作一个计时器,在x秒后运行一个特定的TimerTask,但是TimerTask可以重新安排计时器在y秒后执行任务。下面是一个示例,它在我试图在TimerTask run中调度此任务的行上给出了一个错误“线程中的异常”Timer-0“java.lang.IllegalStateException:任务已调度或已取消”。
问题内容: 对于这个问题,我很抱歉,但是我已经阅读了很多东西,而且看来我还不懂如何做一个计时器。所以我发布我的代码: 我正在尝试使该对象每200毫秒朝目标移动一次。我没有自我尝试过,它给了我同样的错误: 我不知道如何将计时器连接到带有参数的函数。我以为我没有正确使用SLOT参数,但这给了我这些错误。我想这都是错的。我将不胜感激:) 问题答案: 使用新样式的信号,它们更容易理解。 交换- 与- 一个
问题 你想记录程序执行多个任务所花费的时间 解决方案 time 模块包含很多函数来执行跟时间有关的函数。 尽管如此,通常我们会在此基础之上构造一个更高级的接口来模拟一个计时器。例如: import time class Timer: def __init__(self, func=time.perf_counter): self.elapsed = 0.0
我使用Timer和TimerTask为聊天应用程序长轮询新消息。我想研究两种“稍微”不同的可能性: 1:计时器声明为局部变量 *问题:每次调用该方法时,我都会看到创建了一个新线程,[Timer-1]、[Timer-2]等等。。在Eclipse调试窗口中,即使在getLastMessages(..)之后,它们似乎都在运行完成运行并向客户端返回值。如果计时器实际使用线程,并且在几次事务之后,服务器最终