This repository was archived by the owner on Dec 24, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +72
-0
lines changed
Expand file tree Collapse file tree 1 file changed +72
-0
lines changed Original file line number Diff line number Diff line change @@ -96,6 +96,78 @@ public override WebResponse GetResponse(WebRequest webRequest)
9696 return webRes ;
9797 }
9898 }
99+
100+ // Stopwatch shim for Silverlight
101+ public sealed class Stopwatch
102+ {
103+ private long startTick ;
104+ private long elapsed ;
105+ private bool isRunning ;
106+
107+ public static Stopwatch StartNew ( )
108+ {
109+ Stopwatch sw = new Stopwatch ( ) ;
110+ sw . Start ( ) ;
111+ return sw ;
112+ }
113+
114+ public Stopwatch ( ) { }
115+
116+ public void Reset ( )
117+ {
118+ elapsed = 0 ;
119+ isRunning = false ;
120+ startTick = 0 ;
121+ }
122+
123+ public void Start ( )
124+ {
125+ if ( ! isRunning )
126+ {
127+ startTick = GetCurrentTicks ( ) ;
128+ isRunning = true ;
129+ }
130+ }
131+
132+ public void Stop ( )
133+ {
134+ if ( isRunning )
135+ {
136+ elapsed += GetCurrentTicks ( ) - startTick ;
137+ isRunning = false ;
138+ }
139+ }
140+
141+ public bool IsRunning
142+ {
143+ get { return isRunning ; }
144+ }
145+
146+ public TimeSpan Elapsed
147+ {
148+ get { return TimeSpan . FromMilliseconds ( ElapsedMilliseconds ) ; }
149+ }
150+
151+ public long ElapsedMilliseconds
152+ {
153+ get { return GetCurrentElapsedTicks ( ) / TimeSpan . TicksPerMillisecond ; }
154+ }
155+
156+ public long ElapsedTicks
157+ {
158+ get { return GetCurrentElapsedTicks ( ) ; }
159+ }
160+
161+ private long GetCurrentElapsedTicks ( )
162+ {
163+ return ( long ) ( this . elapsed + ( IsRunning ? ( GetCurrentTicks ( ) - startTick ) : 0 ) ) ;
164+ }
165+
166+ private long GetCurrentTicks ( )
167+ {
168+ return Environment . TickCount * TimeSpan . TicksPerMillisecond ;
169+ }
170+ }
99171}
100172
101173#endif
You can’t perform that action at this time.
0 commit comments