Java Swing Timers中的负延迟

chi*_*der 4 java swing

我刚刚在一些代码中遇到过这个问题,我很困惑.

 timer = new Timer(-10, new
         ActionListener()
         {
            //Do some stuff
         });
Run Code Online (Sandbox Code Playgroud)

摆动Timer对象中的负(或零)延迟有什么意义?根据API,第一个事件立即被触发,但是-10和负-100之间有什么区别?在我的代码中,它们似乎功能不同,但我无法确定它对Timer对象的更改.

Ste*_*n C 5

javadoc说:"如果延迟小于或等于零,定时器一启动就会触发." .

所以答案是应该没有区别.您看到的明显差异可能只是应用程序和/或运行时系统中不确定性的结果.

跟进

那么,每个后续事件也会在它之前的事件之后立即触发,任何明显的"延迟"只是系统的产物吗?

延迟可能仅仅是因为线程切换不确定,以及Swing Timer使用一个线程为所有定时器执行事件监听器这一事实.

你应该阅读的javadoc java.swing.Timerjava.util.Timer它们链接到还有其他文档.