J'écris une classe qui traiterait toutes les communications série avec un périphérique externe (c'est-à-dire lire et écrire). Les données sont transmises à l'ordinateur à 20 Hz, et parfois des données sont également écrites sur l'appareil. La classe enverrait ensuite des données valides via un événement à l'interface utilisateur principale. Je souhaite placer cette classe dans un thread distinct car mon code précédent a provoqué un certain «bégaiement» dans le périphérique car il se trouvait dans le thread d'interface utilisateur principal. Je ne suis pas sûr de savoir comment structurer et implémenter la classe SerialPort avec un thread/background worker parce que je n'ai pas d'expérience dans ce domaine.Comment implémenter SerialPort avec le thread C#?
Est-ce que seul l'événement de données reçues existe dans le thread/background worker? Comment passeriez-vous des données dans et hors du thread/arrière-plan créé?
Tous les conseils ou suggestions seraient grandement appréciés!
J'ai fait quelques recherches supplémentaires sur le site msdn, et j'ai lu que l'événement DataReceieved est créé sur un thread séparé. Cela signifie-t-il que tout ce qui est géré à l'intérieur de ce gestionnaire d'événements est déjà sur un thread séparé? Est-ce que ce que j'essaie de faire est redondant? – steeppham
Eh bien oui je suppose que c'est ... =) Assurez-vous que pour l'interface utilisateur, vous utilisez BackgroundWorker ou quelque chose de similaire afin de ne pas "bloquer" l'interface utilisateur, c'est là que vous devez utiliser le filetage. Donc, toute la manipulation du port série est dans un thread, dans lequel vous utilisez l'événement. –