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

ساخت وبلاگ

clsBackUp_Restore Mybk = new clsBackUp_Restore();


BackgroundWorker BGW_1;

//BackgroundWorker BGW_2;

bool RunningState = false;

public frmRestoreDataBase()

{

InitializeComponent();

BGW_1 = new BackgroundWorker();

BGW_1.DoWork += new DoWorkEventHandler(_DoWork);

BGW_1.ProgressChanged += new ProgressChangedEventHandler(_ProgressChanged);

BGW_1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_RunWorkerCompleted );

BGW_1.WorkerReportsProgress = true;

}

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();

}

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 _DoWork(object sender, DoWorkEventArgs e)

{

RunningState = true;

BGW_1.ReportProgress(0);

Cursor.Current = Cursors.WaitCursor;

Mybk.Restor_MyDataBase(txtBackUpPath.Text.Trim());

RunningState = false;

}

private void btnRestore_Click(object sender, EventArgs e)

{

try

{

//اجرای عملیات در پس زمینه

BGW_1.RunWorkerAsync();

}

catch (Exception Exception)

{

Cursor.Current = Cursors.Default;

MessageBox.Show(Exception.Message, "عملیات بازگردانی فایل پشتیبان با خطا مواجه شد!");

}

}

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 138 تاريخ : پنجشنبه 3 تير 1395 ساعت: 23:02