0Pricing
Swift Academy · درس

‏Task وإلغاء المهام

أنشئوا مهام منظمة، وتحقّقوا من الإلغاء وطبّقوا الإلغاء التعاوني.

‏Task وإلغاء المهام درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 وإلغاء المهام» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏Task وإلغاء المهام»؟

أنشئوا مهام منظمة، وتحقّقوا من الإلغاء وطبّقوا الإلغاء التعاوني. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «‏Task وإلغاء المهام»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. صياغة async/await واستدعاء الدوال غير المتزامنة
  2. ‏Task وإلغاء المهام
  3. ‏async let والمهام الابنة المتزامنة
  4. الممثلون: حماية الحالة المشتركة القابلة للتعديل
← العودة إلى Swift Academy