نمایش نتایج 1 تا 3 از 3

نام تاپیک: ارسال Click چندین دکمه به Backgroundworkers

  1. #1

    ارسال Click چندین دکمه به Backgroundworkers

    با درود و آروزی شادی برای همه دوستان.
    ما در Background workers میایم و یک کار سنگین رو تعریف میکنیم که به صورت موازی انجام بشه و برنامه هنگ نکنه .
    آیا میشه دستوراتی که در کلیک یک دکمه تعریف شده رو به Background workers فرستاد ؟
    یعنی در یک فرم چندین دکمه داریم که ممکنه عملیاتشون سنگین باشه و کدهای مربوط به هر عملیات رو داخل دکمه بنویسیم و در backgroundWorker_DoWork مثلا با شرط تعریف کنیم که اگر از فلان دکمه پارامتری ارسال شد به صورت موازی انجام بده .
    حالا با شرط یا هر روش استاندارد میشه این کار رو انجام داد یا برای هر دکمه باید یک backgroundWorker جداگانه تعریف بشه ؟
    ممنون از دوستان عزیز

  2. #2
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: ارسال Click چندین دکمه به Backgroundworkers

    نقل قول نوشته شده توسط CSharpLovers مشاهده تاپیک
    با درود و آروزی شادی برای همه دوستان.
    ما در Background workers میایم و یک کار سنگین رو تعریف میکنیم که به صورت موازی انجام بشه و برنامه هنگ نکنه .
    آیا میشه دستوراتی که در کلیک یک دکمه تعریف شده رو به Background workers فرستاد ؟
    یعنی در یک فرم چندین دکمه داریم که ممکنه عملیاتشون سنگین باشه و کدهای مربوط به هر عملیات رو داخل دکمه بنویسیم و در backgroundWorker_DoWork مثلا با شرط تعریف کنیم که اگر از فلان دکمه پارامتری ارسال شد به صورت موازی انجام بده .
    حالا با شرط یا هر روش استاندارد میشه این کار رو انجام داد یا برای هر دکمه باید یک backgroundWorker جداگانه تعریف بشه ؟
    ممنون از دوستان عزیز
    سلام...می تونید یه متغیر تعریف کنید برای هر کلید و انو به عنوان پارامتر به backgroundWorker پاس بدین...و با یه سوئیچ-کیس اونو مدیریت کنید
    یک نقطه بیشتر فرق بین رحیم و رجیم نیست...از نقطه ای بترس که شیطانیت می کند

    ________________________

  3. #3

    نقل قول: ارسال Click چندین دکمه به Backgroundworkers

    یک نمونه کد میگذارم ببینید صحیح هست این روش :

    int BGW_btnClick; // تعریف متغیر برای ارسال رویداد دکمه ها به بک گراند ورکر

    کدهای دکمه اول -------------------------------

    private void btn7_Click(object sender, EventArgs e)
    {
    if (!backgroundWorker1.IsBusy)
    {
    BGW_btnClick = 1;
    backgroundWorker1.WorkerReportsProgress = true;
    backgroundWorker1.RunWorkerAsync();
    frmWait frm = new frmWait();
    frm.ShowDialog();
    }
    else return;
    }

    کدهای دکمه دوم -------------------------------


    private void btnBn1_Click(object sender, EventArgs e)
    {
    if (!backgroundWorker1.IsBusy)
    {
    BGW_btnClick = 2;
    backgroundWorker1.WorkerReportsProgress = true;
    backgroundWorker1.RunWorkerAsync();
    frmWait frm = new frmWait();
    frm.ShowDialog();
    }
    else return;
    }

    کدهای backgroundWorker1_DoWork -----------------------------------

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
    BindingSource bs = new BindingSource();


    switch (BGW_btnClick)
    {
    case 1:
    _PageSize = Convert.ToInt32(txtSearch3.Text);
    bs.DataSource = _Data.GetListTblUnitPaging2(_PageNumber, _PageSize);
    e.Result = bs;
    break;
    case 2:
    if (txtSearch2.Text == "")
    {
    return;
    }

    bs.DataSource = _Data.GetUnitName(txtSearch2.Text);
    e.Result = bs;
    break;
    case 3:
    // HeaderTest();
    bs.DataSource = _Data.GetDateTest(mskDate1.Text, mskDate2.Text);
    e.Result = bs;
    break;
    }
    }

    کدهای backgroundWorker1_RunWorkerCompleted -------------------------------

    private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {


    // DataGridView dgv = new DataGridView();
    bs = e.Result as BindingSource;


    bn1.BindingSource = bs;
    bn2.BindingSource = bs;
    dgv.DataSource = bs;

    if (dgv.RowCount != 0)
    {
    dgv.Rows[dgv.RowCount - 1].Selected = true;
    dgv.CurrentCell = dgv.Rows[dgv.RowCount - 1].Cells[0];
    }
    }


    در مجموع آیا این روش مناسبی هست یا اینکه بیایم مثلا برای این سه عملیات سه تا backgroundWorker جدا گانه تعریف کنیم ؟
    آخرین ویرایش به وسیله CSharpLovers : جمعه 14 بهمن 1401 در 11:54 صبح

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: سه شنبه 22 تیر 1389, 18:42 عصر
  2. گفتگو: برنامه های چند نخی و backgroundWorkers
    نوشته شده توسط rnm123 در بخش C#‎‎
    پاسخ: 9
    آخرین پست: چهارشنبه 05 فروردین 1388, 19:25 عصر
  3. right click
    نوشته شده توسط sali63t در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: سه شنبه 11 اردیبهشت 1386, 08:49 صبح
  4. right click
    نوشته شده توسط benyamin_pc در بخش C#‎‎
    پاسخ: 7
    آخرین پست: جمعه 15 دی 1385, 07:32 صبح
  5. Right Click
    نوشته شده توسط LordMMD در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 02 اسفند 1382, 23:27 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •