2010-09-18 6 views
1

Class1 crée et appelle une méthode dans Class2. La méthode de Class2 met à jour sa progression vers un gestionnaire d'événements dans Class1. Mais maintenant la méthode de Class2 doit appeler une méthode dans class3. Comment class3 peut-il mettre à jour la progression de sa méthode vers class1? Dois-je chaîner les événements et déléguer tous les niveaux?Événements et délégués, comment puis-je coder 2 niveaux de profondeur?

(J'utilise le modèle MVC, la classe de l'interface utilisateur appelle la classe contrôleur qui appelle une classe des travailleurs. J'ai besoin 2 barres de progression mises à jour dans la classe de l'interface utilisateur. Une barre de progression mis à jour les méthodes de contrôleur finition et un sous progrès barre qui effectue une mise à niveau en tant que processus de boucle dans la classe worker.Le contrôleur s'exécute dans un processus en arrière-plan afin que l'interface utilisateur ne se bloque pas.)

Répondre

3

La classe de travail signale au contrôleur qui informe l'interface utilisateur de la progression. La classe ouvrière et l'interface utilisateur ne doivent pas et ne se connaissent pas. Il suffit de créer une autre paire d'événements entre la classe de travail et le contrôleur (cela s'appelle événement bouillonnant ou enchaînement d'événements, merci @Abel).

+0

Vous suggérez donc de créer une paire événement/délégué dans laquelle la classe worker met à jour le contrôleur et une paire de second délégué d'événement dans laquelle cette mise à jour est envoyée du contrôleur à l'interface utilisateur? –

+0

@ credo de haute technologie: Oui, je crois que c'est ce que signifie Femaref. C'est ce que l'on appelle parfois * événement bouillonnant *, ou plus précisément, * enchaînement d'événements *. – Abel

+0

@Abel: Ok, mais je n'ai pas un seul travailleur. Theres travailleur 1 à 20. L'utilisateur peut exécuter l'un de ces travailleurs. Il n'y a qu'une barre de progression pour les travailleurs. Donc, je vais devoir ajouter 1 gestionnaire d'événements au contrôleur et m'abonner à chacun des événements/délégué des travailleurs. Est-ce correct? –

Questions connexes