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

نام تاپیک: عدم نمایش میزان پیشرفت عملیات بازیابی database هنگام استفاده از backgroundworker

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    Exclamation عدم نمایش میزان پیشرفت عملیات بازیابی database هنگام استفاده از backgroundworker

    دوستان سلام
    من وقتی میخوام دیتابیس رو با استفاده از بک گراند وورکر ریستور کنم ، متد ریستور اصلا اجرا نمیشه
    کد :

    clsBackUp_Restore Mybk = new clsBackUp_Restore();
    BackgroundWorker BGW_1;
    //BackgroundWorker BGW_2;
    bool RunningState = false;


    public frmRestoreDataBase()
    {
    InitializeComponent();
    BGW_1 = new BackgroundWorker();
    //BGW_2 = new BackgroundWorker();

    BGW_1.DoWork += new DoWorkEventHandler(_DoWork);
    BGW_1.ProgressChanged += new ProgressChangedEventHandler(_ProgressChanged);
    BGW_1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_RunWorkerCompleted );
    BGW_1.WorkerReportsProgress = true;

    //BGW_2.DoWork += new DoWorkEventHandler(_DoWork2);

    }




    private void btnRestore_Click(object sender, EventArgs e)
    {
    try
    {
    //اجرای عملیات در پس زمینه
    BGW_1.RunWorkerAsync();
    }

    catch (Exception Exception)
    {
    Cursor.Current = Cursors.Default;
    MessageBox.Show(Exception.Message, "عملیات بازگردانی فایل پشتیبان با خطا مواجه شد!");
    }
    }



    void _DoWork(object sender, DoWorkEventArgs e)
    {
    RunningState = true;
    BGW_1.ReportProgress(0);
    Cursor.Current = Cursors.WaitCursor;

    Mybk.Restor_MyDataBase(txtBackUpPath.Text.Trim());
    RunningState = false;
    }


    void _ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
    //محاسبه درصد پیشرفت عملیات
    int Percent = 0;
    while (RunningState)
    {
    Thread.Sleep(100);
    Percent = Mybk.Calc_Backup_Restor_ProgressPercent();
    if (Percent > 0)
    progressBar1.Value = Percent;

    }
    }

    void _RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
    Cursor.Current = Cursors.Default;
    progressBar1.Value = 100;

    frmMessagBox Mymessage = new frmMessagBox();
    Mymessage.Text = "بازیابی فایل پشتیبان";
    Mymessage.Peygham = "عملیات بازیابی فایل پشتیبان با موفقیت انجام شد!";
    Mymessage.ShowDialog();
    this.Close();
    }


    اما همین متد خارج از dowork بدون هیچ مشکلی اجرا میشه
    البته مشکل بر میگرده به این دستور که میزان پیشرفت عملیات رو توی پروگرس بار نمایش میده.



    BGW_1.ReportProgress(0);


    وقتی این خط هست اصلا خط Mybk.Restor_MyDataBase(txtBackUpPath.Text.Trim()); اجرا نمیشه و سی پی یو به شدت مشغول میشه

    توضیح این که با همین روش عملیات بک آپ رو انجام دادم و هیچ مشکلی نداره
    آخرین ویرایش به وسیله rahmatipoor : پنج شنبه 03 تیر 1395 در 20:08 عصر

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

  1. پاسخ: 0
    آخرین پست: چهارشنبه 21 فروردین 1392, 18:39 عصر
  2. پاسخ: 2
    آخرین پست: جمعه 07 خرداد 1389, 19:02 عصر
  3. نمایش میزان پیشرفت پروسه
    نوشته شده توسط vb study در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: دوشنبه 30 شهریور 1388, 14:30 عصر
  4. سوال: عدم نمایش راهنما اکسس هنگام استفاده از F1
    نوشته شده توسط mehdi_fiz در بخش Access
    پاسخ: 1
    آخرین پست: پنج شنبه 15 اسفند 1387, 18:01 عصر
  5. سوال: عدم نمایش صحیح متون فارسی هنگام استفاده از تابع htmlentities
    نوشته شده توسط Jason.Bourne در بخش PHP
    پاسخ: 5
    آخرین پست: چهارشنبه 30 مرداد 1387, 00:59 صبح

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

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