Il Timer non è lo strumento adatto da utilizzare: benché tu ne possa creare e attivare assieme anche 100, il timer si basa sull'invio periodico (in base all'intervallo) di un messaggio alla coda dell'applicazione Windows, la quale prende in carico la gestione del messaggio generando l'evento Tick e restituendo il controllo solo al termine della gestione, così come avviene per qualsiasi altro evento tradizionale (es. Click su un pulsante).
Ne consegue che, pur attivando più timer, i "tick" di questi verranno comunque gestiti uno alla volta, e l'esecuzione del "tick" del singolo bloccherà il programma fino al termine della sua gestione, dopodiché potranno essere gestiti altri eventi, come i "tick" di altri timer concorrenti.
Impostare un valore troppo basso per i timer può essere deleterio e al di sotto dei 50/100 millisecondi non è nemmeno garantita precisione nella loro esecuzione.
La risposta al problema è quella di adottare il multithreading, quindi creare nell'applicazione più thread concorrenti che leggano periodicamente le informazioni dai device menzionati, senza interferire con l'esecuzione della logica principale del programma.
Suggerisco di leggere l'articolo linkato e altre risorse per capire come si usa e comprendere le differenze rispetto al timer tradizionale.
Ciao!![]()

Rispondi quotando