0Pricing
C# Academy · درس

Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة

أتقن البرمجة غير المتزامنة لإنشاء تطبيقات سريعة الاستجابة

Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 2 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 5 دروس في المجموع.

مقدمة إلى async وawait

async وawait: العمل مع الشيفرة غير المتزامنة

مرحبًا بكم في الدرس التالي! في هذا الدرس، ستتعلمون كيفية استخدام async وawait في C# لكتابة شيفرة غير متزامنة تحسّن استجابة التطبيق وأداءه. فلنبدأ!

Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة — رسم توضيحي 1

ما المقصود بالبرمجة غير المتزامنة؟

ما المقصود بالبرمجة غير المتزامنة؟

تتيح البرمجة غير المتزامنة تشغيل المهام بشكل مستقل دون حظر مؤشر الترابط الرئيسي. وتُعد هذه البرمجة مفيدة بشكل خاص لمهام مثل قراءة الملفات، وجلب البيانات من الإنترنت، أو التفاعل مع قواعد البيانات.

نقطة مهمة: تحسّن الشيفرة غير المتزامنة استجابة التطبيق، ولا سيما في تطبيقات واجهة المستخدم والخوادم.

فهم async وawait

فهم async وawait

تُعد async وawait كلمتين مفتاحيتين في C# تبسّطان البرمجة غير المتزامنة:

  • async: تحدد أن الأسلوب غير متزامن.
  • await: توقف تنفيذ الأسلوب مؤقتًا حتى تكتمل المهمة المنتظرة.

نقطة مهمة: تُرجع الأساليب غير المتزامنة دائمًا قيمة من النوع Task أو Task<T>.

إنشاء أسلوب غير متزامن

إنشاء أسلوب غير متزامن

لننشئ أسلوبًا غير متزامن لمحاكاة مهمة طويلة التنفيذ. مثال:

نصيحة: استخدموا Task.Delay() لمحاكاة فترات التأخير في العمليات غير المتزامنة.

using System;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        Console.WriteLine("Starting task...");
        await PerformTask();
        Console.WriteLine("Task completed!");
    }

    static async Task PerformTask() {
        await Task.Delay(3000); // Simulates a 3-second delay
        Console.WriteLine("Task is running...");
    }
}

إرجاع قيمة من أسلوب غير متزامن

إرجاع قيمة من أسلوب غير متزامن

يمكن للأساليب غير المتزامنة إرجاع قيم باستخدام Task<T>. مثال:

using System;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        int result = await CalculateSumAsync(10, 20);
        Console.WriteLine("Result: " + result);
    }

    static async Task<int> CalculateSumAsync(int a, int b) {
        await Task.Delay(1000); // Simulates a delay
        return a + b;
    }
}

معالجة الاستثناءات في الشيفرة غير المتزامنة

معالجة الاستثناءات في الشيفرة غير المتزامنة

استخدموا try-catch لمعالجة الاستثناءات في الأساليب غير المتزامنة. مثال:

using System;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        try {
            await DivideAsync(10, 0);
        } catch (Exception ex) {
            Console.WriteLine("Error: " + ex.Message);
        }
    }

    static async Task DivideAsync(int a, int b) {
        await Task.Delay(1000);
        if (b == 0) throw new DivideByZeroException("Cannot divide by zero.");
        Console.WriteLine("Result: " + (a / b));
    }
}

تحدي تطبيقي

تحدي تطبيقي

أنشئوا أسلوبًا غير متزامن يجلب البيانات من عنوان URL ويعرض محتواها. مثال:

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        string url = "https://jsonplaceholder.typicode.com/todos/1";
        string data = await FetchDataAsync(url);
        Console.WriteLine("Data: " + data);
    }

    static async Task<string> FetchDataAsync(string url) {
        using HttpClient client = new HttpClient();
        return await client.GetStringAsync(url);
    }
}

أفضل الممارسات للبرمجة غير المتزامنة

أفضل الممارسات للبرمجة غير المتزامنة

إليكم بعض أفضل الممارسات:

  • استخدموا async وawait للمهام التي تتضمن عمليات الإدخال والإخراج أو العمليات الحسابية طويلة التنفيذ.
  • تجنبوا حظر الشيفرة غير المتزامنة باستخدام .Result أو .Wait().
  • عالجوا الاستثناءات لمنع الأخطاء التي لم تتم معالجتها.
  • استخدموا ConfigureAwait(false) في شيفرة المكتبات لتجنب حالات الجمود.

نصيحة: اجعلوا أساليبكم غير المتزامنة موجزة وتركز على مسؤولية واحدة.

أحسنتم!

أحسنتم!

تهانينا! لقد تعلمتم كيفية استخدام async وawait لكتابة شيفرة غير متزامنة في C#. في الدرس التالي، سنستكشف مؤشرات الترابط والمهام للبرمجة المتوازية. فلنواصل كتابة الشيفرة!

انقروا على متابعة للانتقال إلى الدرس التالي.

Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة — رسم توضيحي 10

الأسئلة الشائعة

هل درس «Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة» مجاني؟

نعم — نص درس «Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 5 دروس في المجموع.

ماذا ستتعلم في «Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة»؟

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

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

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

كم من الوقت يستغرق درس «Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة»؟

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

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

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

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

  1. الأنواع العامة في C#
  2. Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة
  3. فهم مؤشرات الترابط والمهام
  4. استكشاف المفوضات وLambdas
  5. فهم Reflection في C#
← العودة إلى C# Academy