0Pricing
Swift Academy · บทเรียน

Task และการยกเลิก Task

สร้าง Task แบบมีโครงสร้าง ตรวจสอบการยกเลิก และใช้การยกเลิกแบบร่วมมือกัน

Task และการยกเลิก Task เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

`Task` คือหน่วยพื้นฐานของการทำงานพร้อมกันใน Swift ใช้เรียกใช้งานแบบอะซิงโครนัสและรองรับการยกเลิกแบบมีโครงสร้าง เพื่อจัดการทรัพยากรได้อย่างเรียบร้อย

การสร้าง Task

```swift Task { let user = try await fetchUser(id: 1) print(user.name) } ``` `Task` สร้างบริบทการทำงานพร้อมกันใหม่

ลำดับความสำคัญของ Task

```swift Task(priority: .userInitiated) { await loadContent() } Task(priority: .background) { await prefetch() } Task(priority: .utility) { await syncData() } ```

Task.cancel()

```swift var task: Task? func startLoading() { task = Task { await heavyWork() } } func stopLoading() { task?.cancel() } ```

การตรวจสอบการยกเลิก

```swift func process() async throws { for item in items { try Task.checkCancellation() // throws if cancelled process(item) } } ```

Task.isCancelled

```swift func stream() async { while !Task.isCancelled { let data = await fetch() emit(data) } } ```

งานแบบแยกออกจากบริบท

```swift Task.detached(priority: .background) { // NOT inheriting actor context or priority of the caller await heavyBackgroundWork() } ```

withTaskCancellationHandler

```swift await withTaskCancellationHandler { await doWork() } onCancel: { cleanup() } ```

ค่าที่ Task ส่งคืน

```swift let task = Task { 6 * 7 } let result = await task.value // 42 ```

การพักการทำงาน

```swift try await Task.sleep(for: .seconds(2)) // Swift 5.7+ try await Task.sleep(nanoseconds: 1_000_000_000) // 1 second ```

ตรวจสอบความเข้าใจ

เมธอดใดจะส่ง `CancellationError` หากงานถูกยกเลิกแล้ว

สรุป

ประเด็นสำคัญ: • `Task { }` — สร้างหน่วยงานอะซิงโครนัส • `task.cancel()` + `Task.checkCancellation()` — การยกเลิกแบบร่วมมือกัน • `Task.isCancelled` — การตรวจสอบสถานะแบบสอบถามเป็นระยะ • `Task.detached` — ไม่สืบทอด actor หรือระดับความสำคัญ • `Task.sleep(for:)` — การหน่วงเวลาที่ไม่ขัดขวางการทำงาน ถัดไป: async let

คำถามที่พบบ่อย

บทเรียน “Task และการยกเลิก Task” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Task และการยกเลิก Task” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Task และการยกเลิก Task”

สร้าง Task แบบมีโครงสร้าง ตรวจสอบการยกเลิก และใช้การยกเลิกแบบร่วมมือกัน คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “Task และการยกเลิก Task” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ไวยากรณ์ async/await และการเรียกฟังก์ชันแบบอะซิงโครนัส
  2. Task และการยกเลิก Task
  3. async let และงานลูกที่ทำงานพร้อมกัน
  4. แอกเตอร์: ปกป้องสถานะร่วมที่เปลี่ยนแปลงได้
← กลับไปที่ Swift Academy