Tag: 定时器

比较使用Thread.Sleep和Timer来延迟执行

我有一个方法应该延迟运行一段指定的时间。 我应该使用 Thread thread = new Thread(() => { Thread.Sleep(millisecond); action(); }); thread.IsBackground = true; thread.Start(); 要么 Timer timer = new Timer(o => action(), null, millisecond, -1); 我读过一些关于使用Thread.Sleep的文章是糟糕的devise。 但我不明白为什么。 但是对于使用Timer,Timer的configuration方法。 由于执行延迟,我不知道如何configurationTimer。 你有什么build议吗? 或者,如果您有延迟执行的替代代码也很感激。 谢谢,

计算一个方法的执行时间

可能重复: 我如何衡量一个函数运行多久? 我有一个I / O占用时间的方法,将数据从一个位置复制到另一个位置。 计算执行时间的最好和最真实的方法是什么? Thread ? Timer ? Stopwatch ? 任何其他解决scheme 我想要最精确的一个,尽可能简短。

VBAmacros定时器样式运行代码每个集合的秒数,即120秒

我需要每120秒运行一段代码。 我正在寻找一个简单的方法来在VBA中做到这一点。 我知道有可能从Auto_Open事件中获取定时器的值,以防止使用一个幻数,但我不能完全知道如何触发一个定时器来让某个东西每120秒运行一次。 如果我可以避免的话,我真的不想用睡眠的无限循环。 编辑 : 基于提供的答案的交叉post是: Excel VBA Application.OnTime。 我认为使用这个想法是一个糟糕的主意吗?

什么是setTimeout的最小毫秒值?

我想说 var minValue = 0; if ( typeof callback == 'function' ) { setTimeout( callback, minValue ); } 这段代码当我用JavaScript实现callback函数。 但是我发现现代的浏览器和一些旧的浏览器 有不同的最小超时值。 我知道零不能是最小值。 setTimeout的最小值是多less? 现代的浏览器和一些旧的浏览器兼容性问题?

每60秒调用一个函数

使用setTimeout()可以在指定的时间启动一个函数: setTimeout(function, 60000); 但是如果我想多次启动这个function呢? 每次经过一个时间间隔,我想执行该function(每60秒,我们假设)。

移动对象和计时器

我有一个屏幕,说500宽度和400高度,我有一个形状束vector。 比方说,vector有两种不同的形状。 我希望物体从屏幕底部随机popup,达到一定的上升,然后再下降(类似于游戏水果忍者,水果是我的形状)。 在我的主要(视图)我有一个形状的向量我实例化计时器,添加到数组,并使用翻译function将它们放置在屏幕的button。 我的计时器需要一个动作监听器,它基本上改变了形状的平移,直到上升然后下降,但是我的问题是所有的形状都是同时开始的。 像这样的东西: Shape f = new Shape(new Area(new Ellipse2D.Double(0, 50, 50, 50))); f.translate(0, 400); f.timer = new Timer( 10 , taskPerformer); f.timer.start(); vector.add(f); Shape f2 = new Shape(new Area(new Rectangle2D.Double(0, 50, 50, 50))); f2.translate(200, 400); f2.timer = new Timer( 10 , taskPerformer); f2.timer.setInitialDelay(5000); f2.timer.start(); vector.add(f2); 和我的行动听众: Random generator = new Random(); […]

有没有更准确的方法来创build比setTimeout的Javascript计时器?

一直困扰着我的是Javascript中的setTimeout()方法是多么的不可预测。 根据我的经验,在许多情况下计时器是非常不准确的。 由于不准确,我的意思是实际的延迟时间差不多是250-500毫秒。 虽然这不是一个大量的时间,当用它来隐藏/显示UI元素时,可以明显地看到时间。 是否有任何技巧可以确保setTimeout()准确执行(无需使用外部API),或者这是一个失败的原因?

产生JSF托pipebean中的线程以使用计时器进行计划任务

我想知道是否可以在应用程序范围的bean中使用Timer 。 例如,可以说我想创build一个计时器任务,每天向每个注册成员发送一堆电子邮件。 我试图尽可能多地使用JSF,我想知道这是否可以接受(我知道,这听起来有点奇怪)。 到目前为止,我已经在ServletContextListener使用了上述ServletContextListener 。 (我不想使用任何应用程序服务器或cron作业,我想保留上面的东西在我的web应用程序。) 有没有一个聪明的JSF这样做的方式还是应该坚持旧的模式?

如何超时一个线程

我想运行一个线程一段固定的时间。 如果在这段时间内没有完成,我想要杀死它,抛出一些exception,或以某种方式处理它。 怎么办? 我从这个线程得出的一种方法是在Thread的run()方法中使用TimerTask。 有没有更好的解决scheme呢? 编辑:添加一个赏金,因为我需要一个更清晰的答案。 下面给出的ExecutorService代码不能解决我的问题。 为什么我应该睡觉()执行后(一些代码 – 我没有处理这段代码)? 如果代码完成并且sleep()被中断,怎么可能是一个超时? 需要执行的任务不在我的控制之下。 它可以是任何一段代码。 问题是这段代码可能会遇到无限循环。 我不希望这样的事情发生。 所以,我只想在一个单独的线程中运行这个任务。 父线程必须等到该线程完成并需要知道任务的状态(即是否超时或发生了某种exception或者是否成功)。 如果任务进入一个无限循环,我的父线程会一直等待,这不是一个理想的情况。

如何在Java中设置定时器?

如何设置一个定时器,例如2分钟,尝试连接到数据库,然后抛出exception,如果有任何连接问题?