当前位置: 首页 > news >正文

做海报的网站应用汇

做海报的网站,应用汇,电脑软件下载,厦门做网站公司有哪些满足延迟执行、立即执行,每次任务间隔时长,总时长的任务 使用1 class TimeViewModel:Viewmodel(){//测试延迟5秒开始执行任务,然后每隔1秒执行1次,总执行时间60秒fun testTime(){var startTime System.currentTimeMillis()log(…

满足延迟执行、立即执行,每次任务间隔时长,总时长的任务

使用1

class TimeViewModel:Viewmodel(){//测试延迟5秒开始执行任务,然后每隔1秒执行1次,总执行时间60秒fun testTime(){var startTime = System.currentTimeMillis()log("执行 开始 startTime:${startTime}")val job =  viewModelScope.startTime(interval = 5000,duration = 1000,totalTime = 60*1000,onNext = {count->log("执行次数:${count}")},onFinish = {log("执行结束")log("执行 结束 总耗时:${System.currentTimeMillis() - startTime}")})viewModelScope.launch {delay(20000)log("模拟执行手动结束")job.cancel()}}}

使用2

 //立即执行任务,然后每隔1秒执行1次,总执行时间60秒
val job =  viewModelScope.startTime(duration = 1000,totalTime = 60*1000,onNext = {count->log("执行次数:${count}")},onFinish = {log("执行结束")log("执行 结束 总耗时:${System.currentTimeMillis() - startTime}")})

 使用3

 /*立即执行任务,然后每间隔1秒执行1次,要么手动调用 job.cancel(),要么等所在协程生命周期结束,才会结束,但不会回调 onFinish 
*/val job =  viewModelScope.startTime(duration = 1000,onNext = {count->log("执行次数:${count}")},onFinish = {log("执行结束")log("执行 结束 总耗时:${System.currentTimeMillis() - startTime}")})

使用4

  /*延迟5秒再执行任务,然后每间隔1秒执行1次,要么手动调用 job.cancel(),要么等所在协程生命周期结束,才会结束,但不会回调 onFinish 
*/ val job =  viewModelScope.startTime(interval = 5000,duration = 1000,onNext = {count->log("执行次数:${count}")},onFinish = {log("执行结束")log("执行 结束 总耗时:${System.currentTimeMillis() - startTime}")})

 //代码封装 

/*** @param interval 单位毫秒,用于定时器延迟时间开启,例如:interval = 5000,则是5秒后才会开始倒计时* @param duration 单位毫秒,用户每次定时任务间隔时长执行1次,例如 duration = 1000,则每间隔1秒执行1次* @param totalTime 单位毫秒,用于定时器执行的总时长,*        如果为空的话,会一直在运行,直到手动调用cancel 方法,或者所在协程声明周期结束 而结束* @onNext(count) ,返回每次执行的次数* @onFinish() 任务正常执行完成*/fun CoroutineScope.startTime(interval:Long? = 0,duration:Long,totalTime:Long? = null,onNext:(Int)->Unit,onFinish:(()->Unit)? = null):Job{if (duration<=0){throw IllegalArgumentException("间隔时间必须大于0")}return this.launch {interval?.let { _interval->if (_interval>0){delay(_interval)}}var isStart = truevar runAllTotalTime:Long = 0var count = 0while (isStart){if (totalTime!= null && totalTime>0 && runAllTotalTime>= totalTime){isStart = falseonFinish?.invoke()}else{delay(duration)runAllTotalTime+=durationcount+=1onNext.invoke(count)}}}}

http://www.yayakq.cn/news/839793/

相关文章:

  • 专业企业网站开发重庆做seo网站优化选择哪家
  • 网站备案管理系统登录不上去房地产信息管理系统软件
  • 网站建设的难点在哪里淘宝店标logo在线制作免费
  • 网站建设与应用岗位郑州威盟网站建设公司怎么样
  • 建设京东类的网站需要什么流程wordpress图像存储
  • 福州网站维护公司重庆网络学院登录入口
  • wordpress网站的优化app设计界面
  • 网站建设公司哪家好 要上磐石网络有哪些平台免费做推广
  • 南京微信网站开发网页制作软件dream
  • 公司建设网站注意事项wordpress分类标签
  • 手机网站 分享做好市场定位的方法
  • 天津网站制作套餐珠海网站制作设计方案
  • 可以做哪方面的网站公司基本介绍模版
  • 阳泉做网站深圳cms建站模板
  • 做美食网站网站建设的技术支持
  • 网站建设技术文章百度收录正常网站流量下降
  • 建立企业的网站有哪几种方案查建设工程规划许可证网站
  • 高校图书馆网站的建设的重要性做网站 什么后缀
  • 豆芽网站建设douyanet建个网站需要多少钱? 知乎
  • 网盘做网站济南住建网站
  • 网站建设百度郑州中小企业网站制作
  • 网站规划建设心得与体会新竹网站
  • 海盐建设局网站在PHP下安装wordpress
  • 15年做哪个网站能致富豆芽网站建设douyanet
  • 网站pv uv是什么意思南昌专业做网站
  • 东莞网站设计建设有限公司网站翻页代码
  • 河南中国建设厅官方网站乐山市规划和建设局门户网站
  • 免费门户网站制作广州小程序定制开发
  • 网站建设哪家好知道万维科技杭州公司展厅设计公司
  • 网站建设 三门峡做网站最烂公司