スレッドに関連していると思われるバグを追跡しようとしてきましたが、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 構造体を計算するには、追加のメソッドを呼び出す必要がありますか? (注: stopwatch.ElapsedMilliseconds もゼロです)