呼和浩特网站制作公司华龙网

张小明 2026/1/13 21:49:26
呼和浩特网站制作公司,华龙网,普通话的顺口溜6句,杭州网站建设icp备作用域协程的结构#xff0c;首个要了解的就是作用域。val scope CoroutineScope(Dispatchers.IO) // 创建一个作用域 fun kotlinCoroutines(){scope.launch { // {} 内代码执行区域#xff08;又叫协程体#xff09;// do something} }作用域一如字面意思就是可以生效的…作用域协程的结构首个要了解的就是作用域。val scope CoroutineScope(Dispatchers.IO) // 创建一个作用域 fun kotlinCoroutines(){ scope.launch { // {} 内代码执行区域又叫协程体 // do something } }作用域一如字面意思就是可以生效的范围为了解决以往启动一个Activity中的子线程后进行耗时操作后即使页面已经被销毁了依然执行导致执行完毕后的回调后报错的问题。这个作用域可谓至关重要。现在只要在页面onDestroy时调用scope.cancel()就可以中断代码的执行了。作用域的功能:生命周期管理。override fun onDestroy() { super.onDestroy() scope.cancel() }Android平台 提供了几种常用的提前给好的作用域lifecycleScope绑定 Activity/Fragment 的生命周期会在 Lifecycle 销毁时自动取消。viewModelScope绑定 ViewModel 的生命周期会在 ViewModel 销毁时自动取消。其中 val scope CoroutineScope(Dispatchers.IO) 中的 Dispatchers常用的有以下几种Dispatchers.MainAndroid 主线程用于更新 UIDispatchers.IO网络请求、文件读写等 IO 密集型任务Dispatchers.Default数据计算、排序等 CPU 密集型任务。默认线程数等于 CPU 核心数挂起函数suspend简单来说 withContext(Dispatchers.Main){} 就可以切换调度器Dispatchers结合起来使用举例如下val scope CoroutineScope(Dispatchers.IO) fun kotlinCoroutines(){ scope.launch { // 网络请求、数据操作等耗时操作 makeLoginRequest() // 切换到主线程 withContext(Dispatchers.Main){ updateUI() // 更新UI } } }挂起函数执行完毕后才能继续执行下面的代码。以上scope.lacunch{}协程体中的代码是顺序执行的 点进withContent函数内部是加了suspend。其中await() 和awaitAll()很好用以前也有遇到情况就是几个接口要同时请求完毕才能结束很丑陋对吧var A false var B false var C false ARequestNetWork(){ ... A ture if( A B C ) {next()} } BRequestNetWork(){ ... B ture if( A B C ) {next()} } CRequestNetWork(){ ... C ture if( A B C ) {next()} }可以改成这样当然saync中的函数的ARequestNetWork()也都要改造成适配协程的你直接在启动一个子线程协程还是无法感知的。coroutineScope { val deferredA async { ARequestNetWork() } val deferredB async { BRequestNetWork() } val deferredC async { CRequestNetWork() } deferredA.await() deferredB.await() deferredC.await() next() }这样写使用 awaitAll 更加简洁coroutineScope { awaitAll{ async { ARequestNetWork() } async { BRequestNetWork() } async { CRequestNetWork() } } next() }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设教的误区婚纱摄影网页制作

当一块太阳能组件从生产线走向电站,它的内部健康状况是否被准确记录?这个问题正在重塑光伏资产的价值评估逻辑。电致发光(EL)检测技术,正从质量筛查工具演变为电站的"数字健康档案"。曜华太阳能组件EL缺陷检…

张小明 2026/1/10 17:26:59 网站建设

重庆seo网站运营外贸网站如何seo

此扩展程序不再受支持怎么办?迁移至vLLM生态 在大模型落地生产的浪潮中,许多团队正面临一个尴尬却现实的问题:曾经依赖的推理服务或自研扩展程序突然弹出“此扩展程序不再受支持”的提示。这不仅意味着功能冻结,更可能带来安全漏…

张小明 2026/1/10 7:08:26 网站建设

做富集分析的网站月嫂网站模板

第一章:医院IT负责人必看,HIPAA合规落地的7个关键步骤 为确保医疗机构在处理受保护健康信息(PHI)时符合《健康保险可携性和责任法案》(HIPAA)要求,IT负责人必须建立系统化的合规流程。以下是实现…

张小明 2026/1/10 7:08:34 网站建设

网站快速优化排名软件网站域名更改后怎么做映射

Wan2.2-T2V-A14B模型生成视频的CDN加速分发最佳实践 在AI内容创作爆发式增长的今天,一个用户输入“一位穿红色连衣裙的女孩在樱花树下跳舞”,不到一分钟,一段720P高清、动作流畅、光影自然的短视频就出现在屏幕上——这已不再是科幻场景。以W…

张小明 2026/1/10 7:08:33 网站建设

贸易公司做网站有优势吗昆明网站建设推广服务

软件测试配置与用例规划全解析 1. 测试配置概述 测试配置是可配置的,并且会对需要执行的测试数量产生影响。其作用在于明确确保软件在用户机器上所有可能的配置选项下都能得到测试所需的特定信息。不过,截至当前版本,测试配置严格来说只是元数据,对测试运行本身没有影响,…

张小明 2026/1/10 7:08:33 网站建设