Je travaille sur une implémentation de port série en C#. Je reçois des données de SerialPort et j'ajoute ces données au type de collection de la file d'attente (globalement déclaré). J'utilise le thread BackgroundWorker pour traiter les données dans la file d'attente. Le problème est que. Si Arrêt du port série Envoi des données et des données Arrêt reçu Réception des données Il reste encore des données dans ma file d'attente qui nécessitent un traitement. Est-il possible de me dire qu'il n'y a pas de données provenant de SerialPort ou en d'autres termes Port_dataReceived est arrêté de recevoir des données. Alors que je peux traiter toutes les données présentes dans la file d'attente. Parce que cette fois je serai sûr qu'il n'y aura pas de données provenant du port série maintenant et quelles que soient les données dans la file d'attente sont les dernières données à traiter. Merci à l'avance - ChetanTout événement en C# .Net qui m'indique le port série dataReceived event stop Réception de données
Q
Tout événement en C# .Net qui m'indique le port série dataReceived event stop Réception de données
0
A
Répondre
1
Si vous utilisez le System.IO.Ports.SerialPort, alors je ne crois pas qu'il y ait quelque chose de construit Vous aurez besoin de ce code vous-même..
Y a-t-il une raison pour laquelle vous ne pouvez pas simplement utiliser l'événement DataReceived et traiter les données à mesure qu'elles arrivent? Ceci est difficile car vous devez gérer le fait que le programme d'écoute SerialPort fonctionne sur un thread différent, vous devrez donc vous soucier de la sécurité des threads, mais vous pouvez définir une variable DateTime globale et la mettre à jour dans l'événement DataReceived , puis vérifiez que dans votre code pour voir si les dernières données ont été reçues a été plus que n secondes.
Merci David. Bonne suggestion. –