آموزش جامع برنامه نویسی چند ‌نخی (Multithreading)در سی شارپ


آموزش جامع  برنامه نویسی چند ‌نخی (Multithreading)در سی شارپ
برای خرید این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

آموزش برنامه نویسی چند نخی (Multithreading) در زبان سی شارپ:

 

چند نخی (Multithreading) در سی شارپ چیست؟
چند نخی در #C فرآیندی است که در آن چندین نخ همزمان کار می کنند، هر نخ یا Thread فعالیت های مختلفی انجام می دهد یا به عبارتی به مجموعه کدهایی گفته می شود که به طور موازی اجرا می شوند و مهم ترین مزیت چند نخی این است که چندین کار همزمان انجام می شود.

 

ایجاد نخ در سی شارپ:
مثال: در این مثال سه تابع Fun1 ,Fun2 ,Fun3 را در کلاس MyClass تعریف کرده ایم که اعداد بین 1 تا 30 را چاپ می کند.


namespace MultiThreading
{
    public class MyClass
    {
        public static void Fun1()
        {
            for (int i = 1; i <= 30; i++)
            {
                Console.ForegroundColor=ConsoleColor.Red;
                Console.WriteLine("Test1_" + i);
            }
        }


        public static void Fun2()
        {
            for (int i = 1; i <= 30; i++)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Test2_" + i);
            }
        }


        public static void Fun3()
        {
            for (int i = 1; i <= 30; i++)
            {
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("Test3_" + i);
            }
        }
    }
}

 


برای استفاده از Thread ها ابتدا  using System.Threading و using System.Threading.Tasks را در برنامه قرار می دهیم. برای ایجاد یک نخ یا thread از کلاس Thread یک نخ با نام thread1 ایجاد می کنیم Thread thread1=new Thread(MyClass.Fun1); ، هر زمان که یک Thread ایجاد می کنیم در همان لحظه باید وظیفه آن را مشخص کنیم. در اینجا وظیفه thread1 این است که تابع Fun1 از کلاس MyClass را اجرا کند. برای اجرای نخ ها از متد start()، به این صورت thread1.start() استفاده می کنیم. همچنین برای اجرای تابع Fun2 و Fun3 دو نخ دیگر مانند thread1 ایجاد می کنیم.

 

using System.Threading;
using System.Threading.Tasks;
namespace MultiThreading
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread thread1=new Thread(MyClass.Fun1);
            Thread thread2=new Thread(MyClass.Fun2);
            Thread thread3=new Thread(MyClass.Fun3);
            thread1.Start();
            thread2.Start();
            thread3.Start();
           
        }
    }
}

 

خروجی:

Test3_1
Test1_1

Test3_2
Test1_2
Test1_3

Test3_3
Test2_1
Test1_4
Test3_4
Test2_2
Test1_5
Test3_5
Test2_3
Test1_6

Test2_4
Test3_6
Test1_7
Test3_7
Test1_8
Test3_8
Test1_9
Test3_9
Test1_10
Test3_10
Test2_5
Test1_11
Test3_11
Test1_12
Test3_12
Test2_6
Test1_13
Test3_13

Test2_7
Test1_14
Test3_14
Test2_8
Test1_15

Test2_9
Test3_15
Test2_10
Test3_16
Test1_16
Test3_17
Test2_11
Test3_18
Test2_12
Test3_19
Test2_13
Test3_20
Test1_17
Test3_21
Test2_14

Test2_15
Test3_22
Test1_18

Test3_23
Test2_16

Test3_24
Test1_19
Test3_25

Test2_17
Test1_20

Test3_26
Test2_18
Test3_27
Test1_21
Test3_28
Test2_19
Test1_22
Test3_29

Test2_20
Test1_23
Test2_21
Test1_24
Test2_22
Test1_25
Test2_23
Test3_30
Test2_24
Test1_26

Test2_25
Test1_27
Test2_26
Test1_28
Test1_29
Test2_27

Test1_30
Test2_28
Test2_29
Test2_30
Press any key to continue . . .


امیدواریم که این آموزش، برای شما دوستان درسمنی عزیز مفید باشد، درصورت سوال و یا مشکل می توانید به انجمن برنامه نویسان سی شارپ مراجعه کنید. پیشنهادات و انتقادات خود را در بخش نظرات برای ما ارسال کنید.smiley

انجمن برنامه نویسان سی شارپ

 


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات 22 جلسه
مدت زمان 930 دقیقه
حجم دوره 5/59 گیگابایت
سطح مهارت پیشرفته
وضعیت دوره پایان یافته
: میانگین امتیاز

300,000تومان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی

مهدی عباسی


درباره مدرس :

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی آنلاین درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ... ده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و ....بیشتر بدانید