C# OpenNETCF.秒表->;只有滴答声在变化,没有消失
我一直在努力追踪一个我认为与线程相关的bug,但我认为我使用OpenNETCF的秒表的方式存在问题。我正在应用程序中使用,但为了简单起见,我将以下代码直接移动到视图中:C# OpenNETCF.秒表->;只有滴答声在变化,没有消失,c#,windows-mobile,compact-framework,opennetcf,opennetcf.ioc,C#,Windows Mobile,Compact Framework,Opennetcf,Opennetcf.ioc,我一直在努力追踪一个我认为与线程相关的bug,但我认为我使用OpenNETCF的秒表的方式存在问题。我正在应用程序中使用,但为了简单起见,我将以下代码直接移动到视图中: public partial class WorkoutView : SmartPart { ... private Stopwatch stopwatch; public WorkoutView() { ... stopwatch = new Stopwatch(); stopwatch.Reset
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.elapsedmillesons也为零)是的,它似乎是一个bug,特别是在stopwatch.cs的第136行 目前案文如下:
smFreqInTicks = (MILLIS_IN_TICKS * 1000) / freq;
应改为:
smFreqInTicks = (MILLIS_IN_TICKS * 1000d) / freq;
现在,SMFrequenticks始终为零,这会杀死您正在查看的值。为什么不在Compact框架本身中使用该版本?它是从3.5版开始的…感谢您的回复!你有没有可能在不久的将来发布一个错误修复版本?我目前正在使用社区SDF,所以很遗憾,我无法访问源代码来制作自己的补丁。感谢您指出这一点。我还没来得及测试CF.Net版本,但如果没有问题,我会改用它。