Dans le code ci-dessous, est-il un moyen de au lieu de toujours vous inscrivant la méthode updateWorker_DoWork, passer une méthode comme celui-ciLe passage d'une méthode à un DoWork BackgroundWorker
public void GetUpdates(SomeObject blah)
{
//...
updateWorker.DoWork += new DoWorkEventHandler(blah);
//...
}
public void GetUpdates()
{
//Set up worker
updateWorker.WorkerReportsProgress = true;
updateWorker.WorkerSupportsCancellation = true;
updateWorker.DoWork += new DoWorkEventHandler(updateWorker_DoWork);
updateWorker.RunWorkerCompleted +=
new RunWorkerCompletedEventHandler(updateWorker_RunWorkerCompleted);
updateWorker.ProgressChanged +=
new ProgressChangedEventHandler(updateWorker_ProgressChanged);
//Run worker
_canCancelWorker = true;
updateWorker.RunWorkerAsync();
//Initial Progress zero percent event
_thes.UpdateProgress(0);
}
Merci. Donc quel serait le type d'argument si je voulais passer le délégué dans la fonction StartTheWorker. Essentiellement, je veux être en mesure d'appeler StartTheWorker (DoSomething) et avoir DoSomething fonctionner comme un travailleur de fond – James
@James: C'est juste un autre wrapper à construire avec 'Func()'. J'ai mis à jour l'exemple pour refléter cela. – Oliver