всем! Итак, у меня есть форма, в которой есть BackgroundWorker и TextBox. Когда я нажимаю btn, вызывается worker.RunWorkerAsyn c (), и в случае DoWork я действительно запускаю некоторые вложенные циклы Parallel.ForEach (). Эти циклы выполняют некоторые вычисления, в результате которых изменяется значение текстового поля, поэтому в этих циклах я вызываю worker.ReportProgress (0, textBoxValue), который запускает событие progressChanged (отправитель, ProgressChangedEventArgs), и когда я обрабатываю это событие, я просто меняю значение textBox, на котором было передается в аргументах события. Итак, моя проблема в том, что вся форма иногда активна, а значения текстового поля обновляются, а иногда нет. Вот мой код выглядит так.
public class Form{
BackgroundWorker worker = new BackgroundWorker();
TextBox textBox = new TextBox();
RichTextBox rb = new RixhTextBox();
public Form(){
worker.DoWork += DoWork;
worker.ProgressChanged += ProgressChanged;
worker.RunWorkerCompleted += WorkerCompleted;
worker.WorkerReportsProgress = true;
worker.WorkerSupportsCancellation = true;
worker.runWorkerAsync();
}
private void DoWork(object sender,DoWorkEventArgs e){
Parallel.ForEach(list,item =>{
//some work
Parallel.ForEach(list2,item2=>{
//some work
worker.ReportProgress(0,param);
}
}
private void ProgressChanged(object sender, ProgressChangedEventArgs e){
//update richtextbox
//update textbox
}
}
}
пожалуйста, дайте мне несколько советов, как отладить эту ситуацию? Отредактировано: richtextbox обновляется правильно, но с неактивного