PDA

View Full Version : سوال: مشکل در استفاده از backgroundworker _ لطفا جواب بدید



meygoo
جمعه 05 آبان 1391, 13:08 عصر
سلام
من این کد رو از msdn ماکروسافت گرفتم و کارم میکنه فقط چند جاش واسم نامفهومه،لطفا یکی واسم توضیح بده


public Form1()
{
InitializeComponent();
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.WorkerSupportsCancellation = true;
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void btnstart_Click(object sender, EventArgs e)
{
if (backgroundWorker1.IsBusy != true)
{
// Start the asynchronous operation.
backgroundWorker1.RunWorkerAsync();
}
}

private void btncancel_Click(object sender, EventArgs e)
{
if (backgroundWorker1.WorkerSupportsCancellation == true)
{
// Cancel the asynchronous operation.
backgroundWorker1.CancelAsync();
}
}
// This event handler is where the time-consuming work is done.
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;

for (int i = 1; i <= 10; i++)
{
if (worker.CancellationPending == true)
{
e.Cancel = true;
break;
}
else
{
// Perform a time consuming operation and report progress.
System.Threading.Thread.Sleep(500);
worker.ReportProgress(i * 10);
}
}
}

// This event handler updates the progress.
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
resultLabel.Text = (e.ProgressPercentage.ToString() + "%");
}

// This event handler deals with the results of the background operation.
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled == true)
{
resultLabel.Text = "Canceled!";
}
else if (e.Error != null)
{
resultLabel.Text = "Error: " + e.Error.Message;
}
else
{
resultLabel.Text = "Done!";
}
}



مثلا قسمت private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
کارش رو میدونم ولی دستورات داخلشو خیلی نمیفهمم

و بعدش میخوام به جای استفاده از label از یه progressbar استفاده کنم
من تازه کارم لطفا واضح توضیح بدید .ممنون

samadblaj
جمعه 05 آبان 1391, 15:14 عصر
سلام اینجـــــــا (http://naras.ir/index.php/discussions/%D8%B7%D8%B1%DB%8C%D9%82%D9%87-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-backgroundworker) رو یه نگاهی کن.

meygoo
شنبه 06 آبان 1391, 11:10 صبح
سلام اینجـــــــا (http://naras.ir/index.php/discussions/%D8%B7%D8%B1%DB%8C%D9%82%D9%87-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-backgroundworker) رو یه نگاهی کن.
ممنون که جواب دادیذ
ولی ببخشید این کد خودم که خیلی آسونتر از اون چیزی بود که شما گفتید،اگه همون قسمت از کد خودم رو که مشکل داشتم واسم توضیح بدید ممنون میشم