جستجو
ثبت نام
آموزش کار با Thread و کلاس Process در سی شارپ

آموزش کار با Thread و کلاس Process در سی شارپ

ایجاد thread جهت انجام Process های مختلف در محیط دات نت 

هدف از ارائه این مقاله آموزش کار با threadها در زبان سی شارپ و استفاده از کلاس Process جهت انجام وظایف مختلف می باشد به طوریکه هنگام اجرای سورس کد thread های مختلفی در یک برنامه شروع به کار کرده و Process های مختلف را شروع میکنند.

Thread یا نخ چیست ؟ 

در حالت کلی هر زمان که قصد داریم یک برنامه تعداد درخواست‌های زیادی را پاسخگو باشد و یا کاری را به موازات کار دیگر انجام دهد و برنامه هنگ نکند یا دچار توقف نشود به یک تکنولوژی نیاز داریم که به آن Thread می گویند.

Multi-threading برای انجام چندین کار مورد استفاده قرار میگیرد . هر کار میتواند دارای چندین thread باشد . در یک نرم افزار multi-threaded ،کاربر توانایی بیشتری در خصوص استقاده از نرم افزار نسبت به یک نرم افزار single-threaded دارد . امروزه ، اکثر نرم افزار ها از multi-threading استفاده میکنند.

ساختار سیستم عامل ویندوز به گونه ای می باشد که برای هر وظیفه یک Process خاصی ایجاد میکند و بحث Multi-Tasking را انجام میدهد این بحث نیز از قوانین Multi-Threading یا چند نخی تبعیت میکند در حالت کلی برای هر تسک یا task یک نخ تعریف میشود و رویه ها به طور موازی به انجام وظایف خود میپردازند.

محیط برنامه نویسی دات نت و زبان سی شارپ نیز از این قاعده مستثنا نیست و Base برنامه نویسی و نحوه کامپایل نیز به صورت Threading صورت میگیرد و اگر بخواهیم یک برنامه به صورت Multi Threading بنویسیم کافی است کتابخانه Thread را به پروژه خود توسط دستور Using.system.Threading اضافه کنیم.

در ادامه قصد داریم تا یک پروژه در محیط Console برای آشنایی بیشتر با کاربرد thread پیاده سازی کنیم. به این صورت که برنامه چندین نخ داشته و برای هر نخ یک Process جهت اجرای فایل های Exe در نظر میگیریم:
 

یک پروژه در Console App ایجاد میکنیم و در کلاس Program شروع به کدنویسی میکنیم :

1) در مرحله اول در متد Main چندین نخ با نام های  thr,thr1,thr2 و با استفاده از روش New ایجاد میکنیم.

  class Program
    {
        static void Main(string[] args)
        {
            Thread thr = new Thread(StartThread);
            Thread thr1 = new Thread(StartThread1);
            Thread thr2 = new Thread(StartThread2);


            Console.WriteLine("Do you want to Start Thread??");
            string Answer = Console.ReadLine();

            if (Answer == "Yes")
            {
                
                thr.Start();
                thr1.Start();
                thr2.Start();
            }
            else
            {
                System.Environment.Exit(1);
            }

        }

2) سپس برای اختصاص Process به نخ های ایجاد شده نیاز هست تا چندین متد Static درون کلاس Program با نام های Start Thread و Start Thread1 و Start Thread2 تعریف کنیم.

از Process به دو صورت میتوان استفاده کرد حالت اول که به صورت یک مولفه آماده که جزء کلاس های سیستمی می باشد و تنها با فراخوانی نام آن میتوان استفاده نمود حالت دوم با Drag & Drop در محیط ویندوز فرم که جزء کنترل های پشت پرده می باشد و براحتی در دسترس است

از کلاس Process برای Execute کردن یک برنامه ی خارجی استفاده میشود بطوریکه بعد از فراخوانی کلاس Process یا اضافه کردن کنترل آن به پروژه کافی است متد Start موجود در کلاس را Recall کنیم تا فایل Exe مورد نظر ما اجرا گردد.و برای پاس دادن آدرس باید فرمت خاصی که مورد قبول متد Start می باشد تعریف نمود که فرمت به صورت کامل در سورس کد توضیح داده شده است:

        public static void StartThread()
        {
            System.Diagnostics.Process.Start(@"C:\Users\FarshadMarahem\Desktop\Slider.exe");
        }

        public static void StartThread1()
        {
            System.Diagnostics.Process.Start(@"C:\Users\FarshadMarahem\Desktop\Time_Recorder.exe");
        }

        public static void StartThread2()
        {
            System.Diagnostics.Process.Start(@"C:\Users\FarshadMarahem\Desktop\Calculating_suitable_Weight.exe");
        }

3) درون هر متد با استفاده از ابزار System Diagnostics و کلاس Process یک فایل Exe اختصاص میدهیم و آدرس فایل را طبق سورس کد درون متد Start وارد میکنیم.

4) سپس از کاربر سوالی در خصوص اجرای نخ ها پرسیده میشود و کاربر با تایپ کردن Yes نخ ها شروع به اجرا کرده و فایل های Exe مورد نظر به ترتیب اجرا میشوند و وظایف process ها به صورت کامل انجام میگیرد.

5) فایل های Exe شامل پروژه اسلایدر، تایم ریکوردر و محاسبه BMI می باشد که در ویندوز فرم سی شارپ طراحی و پیاده سازی شده اند.

 

 

 

نظریه با ارزش وایکوف در بورسبهترین از نظر کاربران
نظریه با ارزش وایکوف در ب ...
افزایش حجم آپلود برای پرستاشاپآخرین پست
افزایش حجم آپلود برای پرس ...