Est-ce que ce serait une bonne façon de disposer d'un BackGroundWorker? Je ne suis pas sûr s'il est nécessaire de supprimer les événements avant d'appeler .Dispose(). Appelle également .Dispose() dans le délégué RunWorkerCompleted ok à faire?Un moyen correct d'éliminer un BackGroundWorker
public void RunProcessAsync(DateTime dumpDate)
{
BackgroundWorker worker = new BackgroundWorker();
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerAsync(dumpDate);
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
// Do Work here
}
void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
worker.RunWorkerCompleted -= new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.DoWork -= new DoWorkEventHandler(worker_DoWork);
worker.Dispose();
}
Est-ce un travailleur d'arrière-plan sur un formulaire? –
Oui c'est le cas, bien que j'ai créé le BGW par programme plutôt que de le déposer sur le formulaire dans le concepteur. Comme indiqué le BGW est créé quand je veux exécuter le fil. L'idée était de créer une BGW différente à chaque fois que le fil était appelé et de s'en débarrasser une fois terminé. – galford13x