ดิสแพตเชอร์ข้ามแพลตฟอร์ม
เลือกดิสแพตเชอร์ที่มีอยู่ทั้งบน Android และ iOS
ดิสแพตเชอร์ข้ามแพลตฟอร์ม เป็นบทเรียน Kotlin Multiplatform Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Multiplatform Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
Where Work Actually Runs
A coroutine still runs on some thread. A dispatcher decides which thread or pool it uses, and that choice matters on each platform.
Meet Dispatchers.Default
Use Dispatchers.Default for CPU-heavy work like parsing or sorting. It exists on Android and iOS, so shared code can rely on it.
withContext(Dispatchers.Default) { sort(data) }Dispatchers.Main for UI
Dispatchers.Main runs on the platform UI thread. It is available in common code, but only update screens from here.
withContext(Dispatchers.Main) { render(state) }The IO Dispatcher Gap
Watch out: Dispatchers.IO exists on the JVM and Android but not in plain common code on every target. Do not assume it is everywhere.
Stay in Common-Safe Land
For portable shared logic, prefer Default and Main. They are guaranteed across the targets KMP commonly supports.
Switching with withContext
You move work between threads using withContext. Compute on Default, then hop to Main to publish the result, all in one function.
val r = withContext(Dispatchers.Default) { heavy() }Dispatchers Are Pluggable
A dispatcher is just a CoroutineContext element. You can pass one in, which makes shared code easy to configure and test.
class Loader(val io: CoroutineDispatcher)Inject for Testability
Passing the dispatcher in lets tests swap a deterministic one. Hard-coding it makes shared async logic harder to test. 🧪
iOS Runs Them Too
On iOS these dispatchers map onto the right native queues automatically. Your shared code does not care about GCD details.
One Choice, Both Platforms
Because the dispatcher names are common, the same line schedules work correctly on Android and iOS. No platform branches in your logic. ✨
Pick the Right Tool
Rule of thumb: Default for computation, Main for UI updates, and inject anything IO-like so it stays portable. 🎯
Quick Check
Pick the dispatcher choice that is safest for shared KMP code.
Recap
You learned to pick dispatchers wisely: Default for computation, Main for UI, and inject IO-style ones since they are not on every target. 🎉
คำถามที่พบบ่อย
บทเรียน “ดิสแพตเชอร์ข้ามแพลตฟอร์ม” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ดิสแพตเชอร์ข้ามแพลตฟอร์ม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Multiplatform Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ดิสแพตเชอร์ข้ามแพลตฟอร์ม”
เลือกดิสแพตเชอร์ที่มีอยู่ทั้งบน Android และ iOS คุณปฏิบัติ Kotlin Multiplatform Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Multiplatform Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Multiplatform Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ดิสแพตเชอร์ข้ามแพลตฟอร์ม” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Multiplatform Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Multiplatform Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ฟังก์ชัน suspend ที่ทำงานได้ทุกที่
- ดิสแพตเชอร์ข้ามแพลตฟอร์ม
- CoroutineScope และวงจรชีวิต
- withContext และภาวะทำงานพร้อมกันแบบมีโครงสร้าง