, 64- TickCount, 2 ^ 63 (292 ) 2 ^ 64 (585 ). 1 ( 10-16 ) , 1000 49 710 (136 ) UInt32.
GetTickCount64() , Vista .
, TickCount.
...
uint uiT0 = unchecked((uint)Environment.TickCount);
uint uiElapsedPrev = 0;
uint uiWrapCount = 0;
...
long x = GetElapsedTime();
public static long GetElapsedTime()
{
uint uiElapsed = unchecked((uint)Environment.TickCount - uiT0)
if (uiElapsed < uiElapsedPrev)
uiWrapCount++;
uiElapsedPrev = uiElapsed;
return ( ((long)uiWrapCount << 32) + (long)uiElapsedPrev );
}
Int32.MaxValue .NET. 32- . Environment.TickCount . , . : : uiT0 = Int32.MaxValue; iTickNow = uiT0 + 1 Int32.MinValue; , (iTickNow - uiT0) 1.
uiElapsed 49,7 , . , , iWrapCount . GetElapsedTime() 49.7 , .