rappel sur le timer des winforms
bonjour
il faut toujours aller a la doc du fournisseur et lire les avertissements et autres gentillesses sur le produit quand ca ne va pas.
voici la doc msdn en francais sur le Timer WinForm et j'ai pris la liberte de souligner un paragraphe en relation avec le port:
Debut de citation
La propriété Interval impose quelques restrictions dont vous devez tenir compte lorsque vous programmez un composant Timer :
Si votre application ou une autre impose une demande importante au système (boucles longues, calculs complexes, accès intensifs à un périphérique, un réseau ou un port, par exemple), elle peut ne pas obtenir des événements de minuterie aussi souvent que spécifié par la propriété Interval.
L'intervalle peut être compris entre 1 et 64 767 millisecondes ; autrement dit, même l'intervalle le plus long ne dépasse pas de beaucoup la minute (il est d'environ 64,8 secondes).
Il n'est pas garanti que l'intervalle s'écoule dans le temps exact. Pour que sa précision soit garantie, la minuterie doit pouvoir au besoin consulter l'horloge système plutôt que de suivre en interne le temps écoulé.
Le système génère 18 graduations à la seconde (autrement dit, même si la valeur de la propriété Interval est mesurée en millisecondes, la véritable précision d'un intervalle ne dépassera pas un dix-huitième de seconde).
Fin de citation.
Aussi il me semble que le probleme se situe dans le nombre affecte à SerialPort1.BytesToRead soit 20 octets .
Car la frequence des rafale de reception de donnees (evenement datareceived du serial port) est incontrollable
Seul ce 20 qui active le timer peut augmenter sa latence ou duree de sommeil et lui donner le delai pour consulter l'horloge systeme avant de demarrer .
bon code....