详解鸿蒙仓颉开发语言中的计时器

今天又到了大家喜闻乐见的科普环节,也可以说是踩坑环节,哈哈哈。今天聊一聊仓颉开发语言中的计时器,这部分可老有意思了。

为什么这么说呢,因为关于仓颉的计时器你几乎搜不到任何的文档,也没有相关的代码提示,可以说是一写一个不吱声。

但是它还是被幽蓝君发现了蛛丝马迹,今天就把它分享给大家。

仓颉的计时器藏在std.sync包里,名字叫Timer,但是使用时只导入Timer包还不够,我们需要导入这几个模块:

import std.time.*
import std.sync.Timer
import std.sync.CatchupStyle

计时器的写法也是别出心裁,它有几种模式,下面为大家一一介绍

Timer.after(Duration.minute, { => 
    AppLog.info('这是after计时器'); 
    return Duration.second
    })

这行代码的意思是,计时器在一分钟以后执行,然后每分钟执行一次App.info打印。这个模式比较奇怪,它的执行间隔在执行方法中返回。

另一个比较奇怪的地方不知道大家有没有发现,计时器中的延迟时间和执行间隔这两个时间参数使用的是Duration类型的枚举,就是说只能使用它设定好的几个值,目前给出的时间值有Zero、second、minute、hour等,可以看到都是时间整数,你如果想要两秒执行一次,或者是二分之一秒执行一次大概是不行的。

Timer.once(Duration.minute,{=> 
  AppLog.info('这是once计时器');
  })

这种模式大家应该一眼就能看出来,这是只执行一次的计时器,延迟时间是一分钟后。

Timer.repeat(Duration.Zero, Duration.second, {=> 
  AppLog.info('这是repeat计时器'); 
  }, style: CatchupStyle.Skip)

repeat是重复性执行的计时器,Duration.Zero是延迟执行的时间,Duration.second是执行的间隔,这里出现了新的参数style,它的名字叫追平策略,官方给出的解释是:当 Task 执行时间过长时,后续任务执行时间点可能发生延迟,不同的追平策略适用于不同的场景。

Timer.repeatDuring(period: Duration, delay: Duration, interval: Duration, task: () -> Unit, style: CatchupStyle)

这个计时器和上面的repeat类似,它多了一个参数period,意思是重复周期的最大持续时间。类似的还有repeatTimes,它指定了任务的最大执行次数:

Timer.repeatTimes(count: Int64, delay: Duration, interval: Duration, task: () -> Unit, style: CatchupStyle)

以上就是关于仓颉开发语言中计时器的详细内容,感谢阅读,再次祝大家假期愉快。#HarmonyOS语言##仓颉##购物#

#harmonyos#
全部评论

相关推荐

07-11 17:31
已编辑
门头沟学院 Java
我5月底考完软考就一直在找实习单位,沟通了很多家,也要到了不少面试,但被挂了很多家。简历被拒,面试被拒等等挫折,很坎坷。一路磕磕绊绊到最后也就是今天,收到一家挺好的北京互联网公司,A轮投资,做自研产品。虽然实习薪资给的挺一般,但可以居家办公,弹性上班。整个求职过程都挺累的,陷入无限的内耗,焦虑甚至自我怀疑,索性结果是好的。感觉有些时候在迷茫 自我怀疑时,真的需要很多鼓励和安慰,这些让我在低谷很感动,很难得。新offer已签timeline:6.13:简历初筛6.14:线上笔试6.17:二面6.19:oc个人总结:求职前去准备了挺多的八股文,语雀也写了近2w字八股。不过当后面发现,小公司考察八股很少,有也是一些基本的概念,不会像大厂一样一个HashMap说5min。也要对整个开发流程的熟悉程度,自身技术跟公司岗位的匹配程度等等。后期也是总结了自身的面试问题:对这个开发流程足够熟悉,包括技术的概念,项目的细节等等。对找实习的牛油门点建议:多注重基础,开发流程的细节(精确到一些概念,注解等等)写到简历的技术一定得懂,不懂宁愿不写面试大胆的展现自己,要足够自信(面试官问会不会,一定要掷地有声,铿锵有力的说会)八股可以背,但目标是小公司的话就不用太注重底层原理了有时候注重基础,比学什么高深技术都重要。希望大家都能上岸,哈哈哈。——————————————————————————————————————————————————后续来了。因本人考核没通过导致措施offer,其实也不能怪自己菜。这公司tnn 考核标准仅仅在面试一句话带过,当时本人没听清,内部考核文档说15天。。。哎,此处不留爷,自由留爷处(修改这篇文章时,主包已经找到新的实习了),好好努力吧,要学的东西还有很多,大家一起共勉
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务