use*_*755 1 .net vb.net rollover gettickcount
绝对值是否保护Environment.TickCount包装中的以下代码?
If Math.Abs((Environment.TickCount And Int32.MaxValue) - StartTime) >= Interval Then
StartTime = Environment.TickCount And Int32.MaxValue ' set up next interval
...
...
...
End If
Run Code Online (Sandbox Code Playgroud)
有没有更好的防范Environment.TickCount环绕的方法?
(这是.NET 1.1.)
编辑 - 根据Microsoft Environment.TickCount帮助修改代码.
如果要测量的时间跨度不超过24.8天(任何更长的时间都不能用有符号整数表示),避免包装问题很容易.在C#中:
int start = Environment.TickCount;
DoLongRunningOperation();
int elapsedTime = Environment.TickCount - start;
Run Code Online (Sandbox Code Playgroud)
我对VB.NET不是很熟悉,但只要你使用未经检查的数学运算,这就行了,你不必担心换行.
例如,如果Environment.TickCount从2147483600换行到-2147483596,则无关紧要.您仍然可以计算它们之间的差异,即100毫秒.
| 归档时间: |
|
| 查看次数: |
11076 次 |
| 最近记录: |