Je vous écris une petite application de chat, et j'ai ce gestionnaire d'événements:C#, Event Handlers et Threading
void o_Typing(object sender, EventArgs e)
{
MessageBox.Show("Fired!");
this.Text = "Fired!";
}
o_Typing
est une méthode dans une classe dérivée de TabPage
. Fondamentalement, je veux que chaque conversation ait son propre onglet.
Les gestionnaires d'événements sont déclenchés par mon objet Chat, qui s'exécute dans un autre thread. J'ai 1 thread pour l'interface utilisateur, et un autre thread pour chaque conversation Chat (pour continuer à interroger le serveur pour les nouvelles données)
Lorsque l'événement est déclenché, le MessageBox
apparaît, mais la légende onglet ne change pas. Une fois que l'événement a été déclenché une fois, il ne se déclenche plus, ce qui me porte à croire que l'événement est appelé dans le thread de travail, bien qu'il soit défini dans le thread de l'interface utilisateur.
Comment puis-je appeler mes événements à partir du thread de travail et utiliser Invoke()
pour les exécuter sur le thread de l'interface utilisateur?
Merci, j'ai utilisé Invoke() sur le gestionnaire d'événements et cela a fonctionné comme un charme. –