Я работаю над проектом на C #, где у меня есть Backgroundworker, который выполняет мою "дорогую работу".
В моем «DoWork» я хочу сообщить о прогрессе с помощью «backgroundworker.ReportProgress (some int)». Но когда моя программа приходит к вызову «backgroundworker.ReportProgress (some int)», я получаю «System.Reflection.TargetInvocationException».
Как мне исправить мою проблему?
private void btnGrap_Click(object sender, EventArgs e)
{
//some code
ListsObject listsObject = new ListsObject(filePaths, enumList);
progressBar1.Maximum = 100;//count;
this.bgrndWorkerSearchMatches.RunWorkerAsync(listsObject);
}
_DoWork:
private void backgroundWorkerSearchMatches_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 100; i++)
{
bgrndWorkerSearchMatches.ReportProgress(i);
}
}
_ProcessChanged:
private void bgrndWorkerSearchMatches_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//progressBar1.Value = e.ProgressPercentage;
}
<Ч />
Я нашел ответ:
Я создал обработчик событий backgroundworker с помощью Visual Studio и не знал, что мне нужно установить вручную:
bgrndWorkerSearchMatches.WorkerReportsProgress = true;