Meilleure façon de faire les événements asynchrones en C#

Événements sont synchrones en C#. J'ai cette application où mon formulaire principal démarre un thread avec une boucle à l'écoute d'un flux. Quand quelque chose arrive sur le stream d'un événement est déclenché à partir de la boucle pour le formulaire principal.

Si le formulaire principal est lent ou affiche une messagebox ou quelque chose de la boucle sera suspendu. Quel est le meilleur moyen de contourner cela? À l'aide d'un rappel et d'appeler sur le formulaire principal?

OriginalL'auteur Niklas Winde | 2008-09-17