Как использовать событие BackgroundWorker RunWorkerCompleted
Все, я уже знал основное использованиеBackgroundWorker
обрабатывать несколько потоков в WinForm. И структура кода выглядит следующим образом.
В основной ветке приложения. просто запустите BackgroundWork.
if (backgroundWorker1.IsBusy != true)
{
// Start the asynchronous operation.
backgroundWorker1.RunWorkerAsync();
}
Тогда это уволитDoWork
событие . Таким образом, мы можем сделать что-то там.
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
......
// report progress.
worker.ReportProgress(iProgress);
....
}
Тогда нам просто нужно справиться сProgressChanged
событие, чтобы показать прогресс BackgroundWorker.
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//show progress.
resultLabel.Text = (e.ProgressPercentage.ToString() + "%");
}
ПослеDoWork
закончено или произошло какое-то исключение. событиеRunWorkerCompleted
будет уволен.
Вот мои вопросы для этого события. пожалуйста, помогите рассмотреть их. Благодарю.
Я заметил, что есть свойство с именем 'Результат' вRunWorkerCompletedEventArgs e
Для чего он используется? Как я могу использовать это?
Есть ли возможность получить мое сообщение об исключении вместоe.error
? Если есть, как это сделать?
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 = e.Result.ToString();
}
}