J'aimerais mettre un délégué à la disposition d'une classe entière. Le but de ceci est de permettre à une méthode appelée d'une classe externe 'backgroundWorker de faire continuellement rapport à travers toutes ses méthodes (ExternalClass.Run(); appelle ExternalClass.Method2(); ExternalClass.Method3(); etc et ils ont tous besoin Pour envoyer plusieurs rapports de progression, il semble inefficace de devoir passer en permanence le déléguéC# Rendre un délégué disponible pour une classe
J'ai essayé d'initialiser une instance du délégué de manière globale et de la définir pour qu'elle soit égale à l'instance transmise dans Run(); avoir à sa disposition, mais je suis donné une erreur qu'un objet nul ne peut être converti implicitement.
merci!
Je ne peux pas montrer le code Je travaille avec ce que je fais pas Je l'ai actuellement avec moi (c'est sur mon ordinateur portable) mais je vais essayer de mieux expliquer maintenant. PSEUDO-CODE:
class form1 : form {
backgroundWorker_doWork()
{
Class2.Run();
}
backgroundWorker_OnProgressChange()
{
// do this
}
}
class class2{
Run(){
OtherMethod();ThirdMethod();
}
OtherMethod(){ //need to call backgroundWorker.ReportProcess(int, string)}
ThirdMethod(){ //need to call backgroundWorker.ReportProcess(int, string)}
}
Je ne veux pas avoir à passer chaque fois est le point, je voudrais passer en quelque sorte à class2
La description est pas claire. S'il vous plaît montrer le code de votre tentative. –
la méthode ReportProgress() de l'arrière-plan atteint-elle maintenant votre objectif? – jim