2010-04-01 7 views
3

J'ai une question concernant les événements dans C#. Disons que j'ai un objet obj1 d'une classe qui expose un événement, et cet objet s'exécute sur le thread t1. Maintenant, sur un autre thread t2, un autre objet appelé obj2 est enregistré pour l'événement obj1.Enregistrement d'un événement à partir d'un thread différent

Est-il promis que obj2 obtiendra l'événement quand il sera levé? merci.

Répondre

3

Oui. Toutefois, l'événement sera déclenché (ce qui signifie que le gestionnaire d'événements sera exécuté) sur le thread de la méthode qui le déclenche. Dans votre cas, ce sera soulevé sur t1.

Si l'objet "obj2" requiert que son code fonctionne sur t2, vous devrez le gérer via marshaling. Ceci est important si "obj2" est un élément de l'interface utilisateur, par exemple.

Questions connexes