0Pricing
C# Academy · درس

فهم مؤشرات الترابط والمهام

استكشف مؤشرات الترابط والمهام لإدارة المعالجة المتوازية في C#

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

مقدمة إلى تعدد مؤشرات الترابط والمهام

فهم مؤشرات الترابط والمهام

مرحبًا بكم في الدرس التالي! في هذا الدرس، ستتعلمون عن مؤشرات الترابط والمهام في C#، التي تتيح لكم تنفيذ عمليات متعددة بالتزامن لتحسين الأداء. فلنبدأ!

فهم مؤشرات الترابط والمهام — رسم توضيحي 1

ما المقصود بتعدد مؤشرات الترابط؟

ما المقصود بتعدد مؤشرات الترابط؟

تعدد مؤشرات الترابط هو عملية تنفيذ عمليات متعددة في الوقت نفسه. ويمثل كل مؤشر ترابط مسارًا منفصلًا للتحكم في تطبيقكم.

نقطة مهمة: يحسّن تعدد مؤشرات الترابط الأداء من خلال الاستفادة من أنوية المعالج المتعددة لتنفيذ العمليات بالتزامن.

إنشاء مؤشرات الترابط وبدء تشغيلها

إنشاء مؤشرات الترابط وبدء تشغيلها

يمكنكم إنشاء مؤشرات الترابط وبدء تشغيلها باستخدام الفئة Thread. مثال:

using System;
using System.Threading;

class Program {
    static void Main() {
        Thread thread = new Thread(PrintNumbers);
        thread.Start();

        Console.WriteLine("Main thread is running...");
    }

    static void PrintNumbers() {
        for (int i = 1; i <= 5; i++) {
            Console.WriteLine(i);
            Thread.Sleep(1000); // Pause for 1 second
        }
    }
}

مقدمة إلى المهام

مقدمة إلى المهام

توفر المهام تجريدًا أعلى مستوى للبرمجة المتزامنة مقارنةً بمؤشرات الترابط. وتُعد الفئة Task جزءًا من Task Parallel Library (TPL) في C#.

مثال: إنشاء مهمة وبدء تشغيلها:

نصيحة: تُعد المهام أسهل في الإدارة وتوفر معالجة أفضل للأخطاء مقارنةً بمؤشرات الترابط.

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        Task task = Task.Run(() => {
            for (int i = 1; i <= 5; i++) {
                Console.WriteLine(i);
                Task.Delay(1000).Wait();
            }
        });

        Console.WriteLine("Main thread is running...");
        task.Wait(); // Wait for the task to complete
    }
}

استخدام Parallel.For وParallel.ForEach

استخدام Parallel.For وParallel.ForEach

تتيح الفئة Parallel في C# تنفيذ الحلقات بالتوازي لتحسين الأداء. مثال:

نقطة مهمة: استخدموا Parallel.For وParallel.ForEach للمهام كثيفة البيانات التي يمكن تنفيذها بالتزامن.

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        Parallel.For(0, 5, i => {
            Console.WriteLine($"Processing {i} on thread {Task.CurrentId}");
        });

        Console.WriteLine("All tasks completed.");
    }
}

معالجة الاستثناءات في المهام

معالجة الاستثناءات في المهام

يمكنكم التقاط الاستثناءات في المهام باستخدام كتلة try-catch أو الخاصية Task.Exception. مثال:

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        try {
            Task task = Task.Run(() => {
                throw new InvalidOperationException("Task failed!");
            });

            task.Wait();
        } catch (AggregateException ex) {
            Console.WriteLine("Error: " + ex.InnerException.Message);
        }
    }
}

تحدي تطبيقي

تحدي تطبيقي

أنشئوا برنامجًا يبدأ عدة مهام لمعالجة الأرقام بالتوازي ويطبع مربعاتها. مثال:

using System;
using System.Threading.Tasks;

class Program {
    static void Main() {
        int[] numbers = { 1, 2, 3, 4, 5 };

        Parallel.ForEach(numbers, number => {
            Console.WriteLine($"Square of {number}: {number * number}");
        });
    }
}

أفضل الممارسات لمؤشرات الترابط والمهام

أفضل الممارسات لمؤشرات الترابط والمهام

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

  • فضّلوا Task على Thread للتزامن عالي المستوى.
  • استخدموا فئات Parallel للعمليات كثيفة البيانات.
  • عالجوا الاستثناءات بشكل صحيح لضمان تطبيقات قوية وموثوقة.
  • حدّدوا عدد مؤشرات الترابط أو المهام لتجنب التنافس على الموارد.

نصيحة: استخدموا البرمجة غير المتزامنة عندما تكون عمليات الإدخال والإخراج هي السائدة، واستخدموا مؤشرات الترابط أو المهام للمهام المرتبطة بالمعالج.

أحسنتم!

أحسنتم!

تهانينا! لقد تعلمتم أساسيات مؤشرات الترابط والمهام للبرمجة المتزامنة في C#. في الدرس التالي، سنتعمق في المفوضات وتعبيرات lambda، وهما ميزتان قويتان للبرمجة الوظيفية. فلنواصل كتابة الشيفرة!

فهم مؤشرات الترابط والمهام — رسم توضيحي 10

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

هل درس «فهم مؤشرات الترابط والمهام» مجاني؟

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

ماذا ستتعلم في «فهم مؤشرات الترابط والمهام»؟

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

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

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

كم من الوقت يستغرق درس «فهم مؤشرات الترابط والمهام»؟

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

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

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

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

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