DispatchNote.kt
April 16, 2026
A coroutine is not a thread you name
suspend means the function may wait. The dispatcher decides which thread does the waiting.
Scope is the lifetime
viewModelScope ends when the screen owner is cleared. That cancellation is the point of the scope.
GlobalScope ignores the screen. A lesson that still runs after the reader leaves will touch a UI that is gone.