Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Chiarimenti sul TIMER
sabato 21 novembre 2009 - 19.28
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
boc_babi
Profilo
| Junior Member
52
messaggi | Data Invio:
sab 21 nov 2009 - 19:28
Ciao a tutti,
ho dei seri dubbi per quanto riguarda il comportamento e la risoluzione dei TIMER.
Dal capitolo "Limitazioni della proprietà Interval del componente Timer di Windows Form" presente nell'MSDN leggo che:
1) "Se una delle applicazioni in esecuzione utilizza una notevole quantità di risorse del sistema, ad esempio mediante cicli lunghi, calcoli complessi o accessi alle unità, alla rete o alle porte, l'applicazione potrebbe non ricevere gli eventi timer con la frequenza specificata dalla proprietà Interval."
2) "Il sistema genera 18 cicli di clock al secondo. Anche se la proprietà Interval viene misurata in millisecondi, la precisione effettiva di un intervallo non potrà quindi essere superiore a un diciottesimo di secondo."
La mia applicazione deve poter eseguire un test di tenuta su di una valvola.
Il tempo di questo test deve essere piuttosto preciso, nell'ordine dei mSec.
Da quanto ho capito il TIMER non è il componente che fa al caso mio in quanto durante il test devo poter essere libero di eseguire altre operazioni con il rischio di "non ricevere gli eventi timer con la frequenza specificata dalla proprietà Interval"; inoltre la precisione del TIMER di 55mS (1\18 sec) non fa per me.
Ditemi se ho sbagliato qualcosa nel ragionamento e se eventualmente ci sono alternative per effettuare il test di cui sopra.
Grazie mille, Boc
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
dom 22 nov 2009 - 11:46
>Ditemi se ho sbagliato qualcosa nel ragionamento e se eventualmente
>ci sono alternative per effettuare il test di cui sopra.
Hai perfetttamente ragione. Bel problema quello dei Timer non sono molto affidabili.
Allora oltre a quel tipo di Timer ti consiglio i diversi tipi di Timer che puoi implementare in .NET. che hanno risoluzioni diverse e inferiori rispetto a 1/18.
1) System.Windows.Forms.Timer class (che penso sia quello che stai usando ora)
2) System.Threading.Timer class
3) System.Timers.Timer class
4) Multimedia timer (
http://www.codeproject.com/KB/miscctrl/lescsmultimediatimer.aspx
)
5) System.Windows.Threading.DispatcherTimer
6) System.Diagnostics.StopWatch
Presta maggiore attenzione all'ultima numero 6 e guarda la documentazione e ti faccio notare il seguente frammento:
The Stopwatch measures elapsed time by counting timer ticks in the underlying timer mechanism. If the installed hardware and operating system support a high-resolution performance counter, then the Stopwatch class uses that counter to measure elapsed time. Otherwise, the Stopwatch class uses the system timer to measure elapsed time. Use the Frequency and IsHighResolution fields to determine the precision and resolution of the Stopwatch timing implementation.
Maggiori informazioni sui Timer qui:
http://msdn.microsoft.com/en-us/magazine/cc164015.aspx
Ciao
David De Giacomi | <empty>
http://blogs.dotnethell.it/david/
boc_babi
Profilo
| Junior Member
52
messaggi | Data Invio:
dom 22 nov 2009 - 12:15
Grazie mille David.
Darò un'occhiata alla documentazione che mi hai suggerito.
Buona giornata, BOC
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !