Elisp之定时器run-with-timer、run-with-idle-timer、run-at-time 区别(二十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解定时器run-with-timer,指定延迟时间后,再执行指定动作。

2.用法

任务实现:每隔2秒钟,打印"hello world"。

<1>.run-with-timer

(run-with-timer 0 2 (lambda () (message "hello world)))

具体来说,参数的含义如下:

  • SECS 是一个表示秒数的整数,表示从现在开始经过多少秒后执行函数。
  • REPEAT 是一个表示是否重复执行的布尔值。如果为非零值,则函数将以固定的时间间隔重复执行;如果为零,则只执行一次。
  • FUNCTION 是要执行的函数名或Lambda表达式。
  • ARGS 是用于传递给函数的可选参数。

<2>.run-with-idle-timer

(run-with-idle-timer 2 1 (lambda () (message "hello world)))

当前 Emacs 缓冲区空闲的时候开始,每隔2秒调用函数 set-head-top 一次。第二个参数为 t 表示重复执行,如果要只执行一次,可以将其设置为 nil

<3>.run-at-time

(run-at-time 2 1 (lambda () (message "hello world)))

注释:2:表示间隔时间;
1:是否重复; 如果是1表示重复; nil则表示不重复。

3.总结

1.run-with-timer和run-at-time用法一致,每个2秒会执行打印。

2.run-with-idle-timer不同

如果长时间不操作的话,它会停止打印;
如果重新操作鼠标或键盘,它会又开始打印,也就是说,当会话不活跃的时候,它就停止工作,解决资源;
当会话重新活跃时,则run-with-idle-timer又开始执行工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android系统攻城狮

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值