2013-03-30 12 views
13

Posso ottenere il tempo trascorso da quando ho chiamato Start su un cronometro utilizzando ElapsedMilliseconds senza chiamare Stop? Ho cercato molto su Internet ma ho visto solo esempi in cui ElapsedMilliseconds viene chiamato dopo Stop. Questo valore è riempito con una chiamata a Stop o è sempre corretta?Devo chiamare Stop prima di leggere ElapsedMilliseconds?

risposta

26

È possibile eseguire una query sulle proprietà trascorse, trascorse al secondo e trascinate mentre l'istanza del cronometro è in esecuzione o arrestata. Le proprietà del tempo trascorso aumentano costantemente mentre il cronometro è in funzione; rimangono costanti quando l'istanza viene interrotta.

-Da http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.elapsedmilliseconds.aspx

+0

Grazie! Non riesco a immaginare come mi sia mancato! –

+0

Sto vedendo situazioni 'interessanti' (per dirla in modo carino) dove 'watch.Elapsed.Ticks! = Watch.ElapsedTicks' quindi c'è qualcosa di strano che succede all'interno di Cronometro. Caveat emptor. Suppongo che avrei dovuto sospettare che poiché ElapsedTicks è una proprietà non un metodo. Mentre mi sto lamentando, Stopwatch non è affidabile su macchine multi-core. – Adam

+0

L'istruzione recupera l'ora due volte. Se il cronometro è in funzione, ovviamente potrebbe cambiare tra questi due recuperi. [se stai vedendo questo dopo aver fermato l'orologio, allora ti concederò "strano" si applica. –

Problemi correlati