ユーザ用ツール

サイト用ツール


kotlin:coroutines

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
kotlin:coroutines [2020/01/14 06:31]
ips
kotlin:coroutines [2020/01/14 07:03] (現在)
ips [まとめ]
ライン 230: ライン 230:
 コルーチン内で他のコルーチンの終了を待機する。 コルーチン内で他のコルーチンの終了を待機する。
  
-<​code>​+<​code ​kotlin>
     fun TestCoroutin(){     fun TestCoroutin(){
         Log.d( ​ "​coroutine","​start"​)         Log.d( ​ "​coroutine","​start"​)
ライン 257: ライン 257:
             launch {             launch {
                 Log.d( ​ "​coroutine","​coroutin_inner"​)                 Log.d( ​ "​coroutine","​coroutin_inner"​)
-            }.join()+            }.join() ​// 待つ
  
             Log.d( ​ "​coroutine","​coroutin_outer"​)             Log.d( ​ "​coroutine","​coroutin_outer"​)
ライン 266: ライン 266:
 2020-01-14 06:​30:​51.472 8058-8058/​com.nekotype.ips.coroutine D/​coroutine:​ start 2020-01-14 06:​30:​51.472 8058-8058/​com.nekotype.ips.coroutine D/​coroutine:​ start
 2020-01-14 06:​30:​51.500 8058-8058/​com.nekotype.ips.coroutine D/​coroutine:​ end 2020-01-14 06:​30:​51.500 8058-8058/​com.nekotype.ips.coroutine D/​coroutine:​ end
-2020-01-14 06:​30:​51.505 8058-8111/​com.nekotype.ips.coroutine D/​coroutine:​ coroutin_inner +2020-01-14 06:​30:​51.505 8058-8111/​com.nekotype.ips.coroutine D/​coroutine:​ coroutin_inner //​順番が変わる 
-2020-01-14 06:​30:​51.508 8058-8110/​com.nekotype.ips.coroutine D/​coroutine:​ coroutin_outer+2020-01-14 06:​30:​51.508 8058-8110/​com.nekotype.ips.coroutine D/​coroutine:​ coroutin_outer //​順番が変わる
 </​code>​ </​code>​
 +
 +
 +===== runBlockingとasync =====
 +runBlockingとasyncは戻り値をもつことができる。
 +asyncは非同期に処理する。asyncにはawaitでまつことができる。
 +
 +===== まとめ =====
 +
 +UIにアクセスするには
 +GlobalScope.launch(Dispatchers.Main) {...
 +
 +Jobを取得してキャンセルするには
 +myjob=GlobalScope.launch { ...
 +myjob.cancel()
 +
 +戻り値を取得するには
 +runBlocking
 +async
 +
 +待ちたいとき(同期)
 +GlobalScope.launch() {
 +launch { ... }.join() ​
 +
 +待ちたいとき(非同期) ​   ​
 +GlobalScope.launch() {
 +async { ... }.await() ​
kotlin/coroutines.1578951088.txt.gz · 最終更新: 2020/01/14 06:31 by ips