2010-05-24 3 views
2

Possible en double:
.NET Controls: Why aren’t all calls thread-safe?Pourquoi .NET n'autorise pas les opérations inter-thread?

Cette question ne concerne pas ce qui est une opération cross-fil, et comment l'éviter, mais pourquoi la mécanique interne du framework .NET ne permet pas une opération de thread-thread.

Je n'arrive pas à comprendre pourquoi un événement SerialPort DataReceived ne peut pas mettre à jour une simple zone de texte sur mon formulaire et pourquoi l'utilisation de délégués est-elle possible?

+0

@ChrisF: rien de "possible" à ce sujet. – Richard

+0

@Richard - le commentaire est automatiquement ajouté lorsque la première personne marque la question comme doublon. Il est remplacé par une modification au corps de la question une fois qu'il a été fermé. – ChrisF

+0

@ChrisF: n'avait pas remarqué cela avant ... (mais s'applique toujours :-)) – Richard

Répondre

2

.NET permet des opérations d'exécution croisée. Mais vous devriez le gérer en toute sécurité. Utilisez les méthodes Invoke/BeginInvoke pour les opérations inter-thread. Invoke signifie "Hey, zone de texte! Veuillez vous mettre à jour quand vous aurez le temps." Voici un exemple d'utilisation on MSDN

Questions connexes