Код: Выделить всё
BackgroundWorker backgroundWorker1 = new BackgroundWorker();
this.backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
this.backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
this.backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
if (backgroundWorker1.IsBusy) {
backgroundWorker1.CancelAsync();
}
else {
backgroundWorker1.RunWorkerAsync();
}
Вот метод DoWork:
Код: Выделить всё
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) {
if (backgroundWorker1.CancellationPending == true) {
e.Cancel = true;
return;
}
for (int i = 0; i
Подробнее здесь: [url]https://stackoverflow.com/questions/79180196/backgroundworker-runworkerasync-not-reaching-dowork-method[/url]