我一直在试图找出一个我认为与线程相关的错误,但我认为我使用 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。其他一切始终为零。这是预期的行为吗?我是否需要调用其他方法让秒表计算 Elapsed 结构?(注:秒表.ElapsedMilliseconds 也为零)