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

Kotlin cancel CoroutineScope.launch的任务后仍运行

Kotlin cancel CoroutineScope.launch的任务后仍运行

 

import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope = CoroutineScope(Dispatchers.IO)val job = coroutineScope.launch {var i = 0while (i < Int.MAX_VALUE) {i++println(i)}}// 2ms 取消协程delay(2)println("cancel...")job.cancel()coroutineScope.cancel()println("cancel!")}
}

 

...

 

997
998
999
cancel!
1000
1001
1002

 

...

加上 coroutineScope.isActive,控制while循环。

import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope = CoroutineScope(Dispatchers.IO)val job = coroutineScope.launch {var i = 0while (i < Int.MAX_VALUE && coroutineScope.isActive) {i++println(i)}}// 2ms 取消协程delay(2)println("cancel...")job.cancel()coroutineScope.cancel()println("cancel!")}
}

 

...

 

598
599
600
cancel!

Process finished with exit code 0

 

也可以加上:

yield()

控制:

import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope = CoroutineScope(Dispatchers.IO)val job = coroutineScope.launch {var i = 0while (i < Int.MAX_VALUE) {yield()i++println(i)}}// 2ms 取消协程delay(2)println("cancel...")job.cancel()coroutineScope.cancel()println("cancel!")}
}

...

 

108
109
110
cancel!

 

 

 

 

b2fd91bb8f6d48669f9a9b45ef3de131.png

 

 

 

 

kotlin协程Job、CoroutineScope作用域,Android_kotlinx.coroutines.job-CSDN博客文章浏览阅读555次。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。结果1-a: 5 - tid:22。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。_kotlinx.coroutines.jobhttps://zhangphil.blog.csdn.net/article/details/131096325

 

http://www.lryc.cn/news/441980.html

相关文章:

  • 你是不是分不清哪些字体是商用,哪些非商用?快来看,免得莫名其妙负债。
  • 新电脑工作流搭建记录-前端篇
  • XXL-JOB 漏洞大全
  • 使用 Visual Studio Code 配置 C/C++ 开发环境
  • STM32与ESP8266的使用
  • 【计算机网络】数据链路层深度解析
  • 【基于轻量型架构的WEB开发】【章节作业】
  • 一张图解析FastAdmin中的表格列表(bootstrap-table)的功能(备份)
  • 【数据结构】假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。
  • 李宏毅结构化学习 02
  • Android AlertDialog圆角背景不生效的问题
  • 探讨基于AI技术的相亲交友系统设计与实现
  • (2024.9.20)Endnote插入的参考文献字号太大怎么办?
  • DataGrip在Windows和MacOS平台上的快捷键
  • CSS---序号使用css设置,counter-reset、counter-increment、content配合实现备注文案的序号展示
  • Liquor 表达式引擎基本使用
  • AI美女屠版小红书火了,被当真人推流,颜值博主慌了
  • 本地搭建我的世界服务器(JAVA)简单记录
  • 哪个快?用300万个图斑测试ArcGIS Pro的成对叠加与经典叠加
  • 超详细!百分百安装成功pytorch,建议收藏
  • web基础—dvwa靶场(四)​File Inclusion
  • 【Python】练习:控制语句(二)第1关
  • Vue3 : Pinia的性质与作用
  • 对接金蝶云星空调用即时库存信息查询API
  • pretrain Llama3
  • [附源码]SpringBoot+VUE+Java实现人脸识别系统
  • 数据库_解决SQL Server数据库log日志过大,清理日志文件方法
  • 引领长期投资新篇章:价值增长与财务安全的双重保障
  • 灾备技术演进之路 | 虚拟化无代理备份只能挂载验证和容灾吗?只能无代理恢复吗?且看科力锐升级方案
  • PowerShell install 一键部署Oracle23ai