OpenNETCF.Stopwatch - >只蜱改变,没有过去
-
23-09-2019 - |
题
我一直想追查我认为是线程相关的错误,但我想取而代之的是我使用OpenNETCF的秒表的方式的问题。我直接使用 OpenNETCF.IoC 在我的应用程序,但是为了简单起见,我把下面的代码到一个视图:
public partial class WorkoutView : SmartPart
{
...
private Stopwatch stopwatch;
public WorkoutView()
{ ...
stopwatch = new Stopwatch();
stopwatch.Reset();
stopwatch.Start();
WorkoutDisplayTimer = new Timer();
WorkoutDisplayTimer.Interval = 500;
WorkoutDisplayTimer.Tick += new EventHandler(WorkoutDisplayTimer_Tick);
WorkoutDisplayTimer.Enabled = true;
}
void WorkoutDisplayTimer_Tick(object sender, EventArgs e)
{ ...
stopwatch.Stop();
lbl.Text = stopwatch.ElapsedTicks.ToString() + "NOT WORKING: " + stopwatch.Elapsed.ToString();
stopwatch.Start();
}
...
}
长话短说,看在调试器秒表,曾经得到更新的值只有ElapsedTicks,mElapsed,mStartPerfCount。其他一切始终为零。这是预期的行为?我需要调用一个额外的方法有秒表计算经过的结构? (注:stopwatch.ElapsedMilliseconds也为零)
解决方案
是的,这似乎是一个错误,特别是在Stopwatch.cs,线136。
有当前读取:
smFreqInTicks = (MILLIS_IN_TICKS * 1000) / freq;
它应显示为:
smFreqInTicks = (MILLIS_IN_TICKS * 1000d) / freq;
现在smFreqInTicks最终是始终为零,它可以杀死你正在寻找的值。
其他提示
为什么不能用在紧凑型框架本身的版本?这是一个在有从3.5版本起...
不隶属于 StackOverflow