آموزش جامع برنامه نویسی چند نخی (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 . . .
امیدواریم که این آموزش، برای شما دوستان درسمنی عزیز مفید باشد، درصورت سوال و یا مشکل می توانید به انجمن برنامه نویسان سی شارپ مراجعه کنید. پیشنهادات و انتقادات خود را در بخش نظرات برای ما ارسال کنید.
انجمن برنامه نویسان سی شارپ
نظرات دانشجویان
استاد گفتید که ترید ها رو داخل ویندوز اپیکیشن توضیح میدید ولی همچین دوره ای ندارید
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.