Day 17 | 今天是Coroutiones的 Dispatcher

读到Dispatcher有种越来越难的感觉QQ
这些太高深的东西对於小萌新来说真的好杀热情阿
估计今天是Coroutiones的最後一篇
後续还是会继续看一些基础的东西
免得自己失去兴趣放弃比赛(?)

Dispatcher

Dispatcher的就是完整包装好提供开发者轻松使用的 CoroutineContext Element,Kotlinx coroutine中有四种 Dispatcher 分别是:

  • Dispatchers.Main:就是Main Thread,当需要UI Thread时用他。
  • Dispatchers.Default:执行预设的CoroutineScheduler,另开一个Thread,通常不会跑在Main Thread上**。**
  • Dispatchers.IO:加强的.Default,可以开更多的Thread。
  • Dispatchers.Unconfined:通常会跑在执行该 Coroutines 的 thread 上,但是在 suspend (暂停,之後会提到)後被回复可能会乱跑,使用上需要注意。

像MainScope 的 CoroutineContext 是 supervisorJob() + Dispatcher.Main ,MainScope 实质上是提供一个 Main thread 为 context 的 Scope。

launch 如果没有传入参数,就用 CoroutineScope 所定义的 CoroutineContext 。

下例为读取记忆卡的范例程序:

class CoroutineActivity : AppCompatActivity(), CoroutineScope byMainScope() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_coroutine)

				launch(Dispatchers.Main){
						progressBar.visibility= View.VISIBLE
						readSomeFile()
						progressBar.visibility= View.GONE
				}
}

<<:  Day 05:AngularJS?Angular?傻傻分不清楚?

>>:  DAY2-EXCEL统计分析:各项绘图功能与特色

Angular 深入浅出三十天:表单与测试 Day26 - 进阶表单开发技巧 - 自订验证器

之前在开发表单的时候,我们都是使用 Angular 所提供的验证器来验证表单栏位里的值是否符合我们...

[13th][Day1] 前言

今次参与战斗是为了挑战自我。 在生活中挤出时间,利用下班的时间好好充实自己。 在加入新团队後,con...

这位秘书,懂喝喔

在还没有担任秘书之前,心底总是对高管秘书有个憧憬:一人之下万人之上,只要打扮的漂漂亮亮,负责帮董事长...

Day13 Sideproject(作品集) from 0 to 1 -产品验证

其实这步我们也是过很久才来做 应该要最开始就先做了 可以避免做出一个只有自己需要的东西 但如果是自己...

16. STM32-I²C EEPROM DataSheet

上一篇介绍过了I2C的基本原理以及相关的函数,这一篇会介绍EEPROM来做为I2C实作的示范。 什麽...