`

使用Timer实现异步调用方法

    博客分类:
  • java
 
阅读更多

Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。

Timer.schedule方法:Timer.schedule(new TimerTask() {public void run(){}},0,1000)

第一个参数:是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现 public void run() 方法,因为 TimerTask 类实现了 Runnable 接口。也就是说run()中的代码就是你要异步调用的方法。

第二个参数"0"的意思是:(0就表示无延迟调用run方法)
当你调用该方法后,该方法必然会调用 TimerTask 类 TimerTask 类 中的 run() 方法,这个参数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行 run() 方法。这里也可以是Date类型。例如:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 18);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();

timer = new Timer();
timer.schedule(new TimerTask() {public void run(){}}, time);

代表18:30调用方法

第三个参数:隔多少时间重复执行一次改方法(可省略)

 

new Timer().schedule(new TimerTask() {
            public void run() {
  System.out.println("test Timer");
            }
        }, new Date());

 

分享到:
评论

相关推荐

    C#中定时器的是使用及异步委托

    这里我们将深入探讨C#中的定时器使用,特别是`System.Timers.Timer`和`System.Windows.Forms.Timer`,以及如何结合异步委托(如`BeginInvoke`)来实现非阻塞的异步调用。 首先,`System.Timers.Timer`通常用于...

    不使用timer实现UI界面更新

    然而,有时我们可能需要避免使用Timer控件来实现这一功能,特别是在涉及到多线程操作时。本篇将详细探讨如何不依赖Timer,而是利用Invoke方法来实现在UI线程安全地更新界面。 首先,我们要理解为什么不能直接在非UI...

    asynchronous timer_异步定时器_

    2. **定时器实现**:异步定时器的实现方式多种多样,常见的有计时器类库(如POSIX的`timer_create`),或者使用事件循环(如在Node.js中的`setInterval`)。在多线程环境中,可以使用线程池或单独线程,线程池可以更...

    关于winform使用timer进行多线程操作的例子

    本例子重点介绍了如何利用`System.Timers.Timer`组件来实现这样的多线程操作,特别是针对网段ping功能的实现。`System.Timers.Timer`是一个异步定时器,它在单独的线程上触发`Elapsed`事件,避免了阻塞UI线程。 ...

    Timer定时器的使用方法

    【Timer定时器的使用方法】 在Java编程语言中,`java.util.Timer` 和 `java.util.TimerTask` 类是用于执行定期或延时任务的核心组件。它们允许开发者在指定的时间间隔内执行特定的操作,这对于实现定时任务,如定时...

    VS2013-C#异步调用UI控件,退出询问(是否退出),文本滚动到插入行

    本话题将深入探讨如何在VS2013的C#环境中实现异步调用UI控件,以及如何处理退出询问和文本滚动。 首先,我们来看异步调用UI控件。在C#中,通常会使用`Control.BeginInvoke`方法来异步更新UI元素。这个方法允许你在...

    C#实现Timer定时器

    本篇将详细讲解如何使用C#实现`Timer`定时器,以实现秒的自加功能。 首先,我们要了解`System.Timers.Timer`类。这个类是.NET框架提供的,常用于多线程环境,它的工作方式是在指定的时间间隔后引发`Elapsed`事件。...

    PB9多Timer事件实例

    1. **创建和启动Timer**:使用CreateObject函数动态创建Timer对象,并通过SetProperty方法设置Interval属性,然后调用Start方法来启动Timer。 2. **处理Timer事件**:为Timer对象添加一个事件处理函数,如OnTimer...

    Ajax Timer异步刷新实例

    **Ajax Timer异步刷新实例详解** 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换数据并更新部分网页内容,提高了...

    udp异步文本通信,采用timer和udpclient以及回调委托实现

    `UdpClient`的异步方法需要提供一个回调函数,当操作完成时,该函数会被调用。例如,可以定义一个`ReceiveCallback`方法作为`BeginReceive`的参数,处理接收到的数据。 4. **UI交互**:在描述中提到了“图像在任务...

    erlang的timer和实现机制

    首先,`timer`模块的主要函数包括`tc/1,2,3`(测试调用)、`send_after/3,4`(发送消息后延迟)、`apply_after/4`(应用函数后延迟)、`cancel_timer/1`(取消定时器)等。这些函数让开发者能够灵活地设置定时事件,...

    C#中Timer使用及解决重入问题

    1. **异步处理**:将事件处理逻辑封装到异步方法中,以防止阻塞主线程并允许其他线程继续执行。 2. **锁定机制**:使用`lock`关键字或者`Monitor`类对共享资源进行互斥访问,确保同一时刻只有一个线程能执行关键代码...

    Demo_2使用Timer组件实现冬奥会计时

    在本文中,我们将深入探讨如何使用C#中的`System.Timers.Timer`组件来实现一个冬奥会计时器。这个Demo_2项目就是一个很好的实例,展示了如何利用Timer类来创建一个能够实时更新并显示计时的简单应用程序。 首先,...

    精彩编程与编程技巧-如何在Visual Basic中实现异步执行程序...

    为了实现异步执行,我们可以使用一个`Timer`控件来控制任务的启动和停止,并在任务开始和结束时触发事件通知主程序。 1. **创建ActiveX EXE组件**:在Visual Basic 6.0中,选择“文件”->“新建”->“工程”,然后...

    system.Threading.Timer的使用

    在这个例子中,我们创建了一个`Timer`,它会立即开始并每隔5秒调用`DisplayTime`方法。用户按任意键后,`Change`方法用于停止计时器。 ### 4. 工作原理与线程安全 `System.Threading.Timer`使用一个线程池线程来...

    Android异步刷新UI多种实现方案

    通常配合Timer类使用,通过schedule()或scheduleAtFixedRate()方法设置执行时机。虽然TimerTask不直接处理UI更新,但可以在任务执行完毕后通过Handler或者直接在主线程调用UI更新方法。这种方式适合实现定时刷新UI的...

    steady_timer使用

    下面是一段典型的异步使用 `steady_timer` 的示例代码: ```cpp void print(const boost::system::error_code& e) { std::cout !" ; } int main() { boost::asio::io_context io_ctx; boost::asio::steady_...

    timer写的任务池

    如果你需要停止整个任务池,即销毁`Timer`,可以调用`Timer`的`cancel()`方法,这会停止所有计划的任务并销毁`Timer`线程。 ```java timer.cancel(); // 停止任务池 ``` 此外,`Timer`类还有一些其他方法,如`...

    c#多线程线程池和异步编程

    本篇将详细讲解`System.Threading.ThreadPool`类、`System.Threading.Timer`类以及异步编程的使用。 **1. System.Threading.ThreadPool 类** 线程池是一种优化线程资源管理的机制,适用于处理大量短期任务。它会...

    sample-Timer.rar_Timer ja_mftimer_timer java

    然后,我们需要定义一个实现了`TimerTask`接口的类,包含`run`方法,该方法将被`Timer`调用来执行任务。例如: ```java class MyTask extends TimerTask { public void run() { // 在这里编写需要定时执行的...

Global site tag (gtag.js) - Google Analytics