آموزش ساخت Multi Threading برای فراخوانی اطلاعات

چهارشنبه 5 شهریور 1393

هرچقد کیفیت و کاربرپسند شدن برنامه را در پروژه های خود بالاببریم این امکان برای جذب مشتری بیشتر میشود در این مطلب توسط Multi Threading و یک Progress اطلاعات دسته به دسته load میکنیم.درباره مزایا Multi Threading در ادامه بحث خواهیم کرد.همراه ما باشید.

آموزش ساخت Multi Threading برای فراخوانی اطلاعات

ابتدا بریم برسی کنیم ببینیم چند نخی یا یا مالتی تردینگ چیست !

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

یک پروژه در سی شارپ ایجاد و یک دیتاگرید و یک Button روی آن قرار بدید.(فرمی همانند فرم اول )

یک کلاس با نام "clsProgress" ایجاد کنید و کد زیر را در آن قرار دهید.

 private static Thread th = new Thread(new ThreadStart(showProgressForm));                 
        public void startProgress()
        {
            th = new Thread(new ThreadStart(showProgressForm)); 
            th.Name = "first";
            th.Start();            
        }

        private static void showProgressForm()
        { 
            frmProgress sForm = new frmProgress();
            sForm.ShowDialog();            
        }

        public void stopProgress()
        {
            th.Abort();
            th = null;
        }

در Load فرمی که ساخته اید کد زیر را قرار دهید.

DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
            col1.HeaderText = "UserID ";
            dataGridView1.Columns.Add(col1);

            col1 = new DataGridViewTextBoxColumn();
            col1.HeaderText = "Password";
            dataGridView1.Columns.Add(col1);

در Button فرم نیز کد زیر را قرار بدید !

            clsProgress cPro = new clsProgress();
            cPro.startProgress();

            for (int i = 0; i < 9999; i++)
            {
                dataGridView1.Rows.Insert( dataGridView1.Rows.Count-1,1);
                dataGridView1[0, i].Value  = i.ToString();
                dataGridView1[1, i].Value = i.ToString();
            }
            cPro.stopProgress();

ما برای نمایش Loading به کاربر نیازبه یک فرم دیگه داریم یک فرم با نام FrmProgress  بسازید

سعی کنید سایزشو کوچیک کنید و موقعیت نمایش را روی Center Screen قرار بدید که وسط فرم به نمایش دربیاد یک ابزار تصویر که تصویر آن ضمیمه شده به ابزار تصویر اضافه کنید
 و کد زیر را به فرم Progress اضافه کنید.

 public static frmProgress sForm = null;
        public static frmProgress Instance()
        {
            if (sForm == null) { sForm = new frmProgress(); }

            return sForm;
        }

خیلی سخته براتون ! فایل ضمیمه کردم برید دانلودش کنید !

مسعود شریفی پور

نویسنده 15 مقاله در برنامه نویسان
  • C#.net
  • 11k بازدید
  • 27 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید