Allora, la situazione è questa. Ho una BW dove le proprietà: WorkerReportsProgress e WorkerSupportsCancellation sono settate a true.

Nel tasto che dovrebbe chiudere la BW è richiamata la CancelAsync().

Mentre all'interno del ciclo nel codice della BW (doWork) è riportata la seguente sintassi:

codice:
if (backgroundWorker3.CancellationPending == true)
{
    e.Cancel = true;
    break;
}
else
{
    backgroundWorker3.ReportProgress(100);
}
Quando premo il tasto contenente la CancelAsync(), avviene l'uscita dalla BW, ma quando rilancio la BW

codice:
backgroundWorker3.RunWorkerAsync();
Viene generata l'eccezione che afferma che la BW è già in esecuzione.
Quindi, come posso terminare DEFINITIVAMENTE la BW e poi lanciarne un'altra analoga?

Grazie.