0
私のアプリでストップウォッチを設定する必要があります。私は1ミリ秒の間隔でディスパッチャータイマーを使ってそれをしようとしました。しかし、時計は約1秒までカウントするのに約10秒かかるスピードで動作します。WPFタイムプレシジョンでストップウォッチを作成する
私はそれがスレッドの問題であると仮定しますが、それを克服する方法はありますか?
私のアプリでストップウォッチを設定する必要があります。私は1ミリ秒の間隔でディスパッチャータイマーを使ってそれをしようとしました。しかし、時計は約1秒までカウントするのに約10秒かかるスピードで動作します。WPFタイムプレシジョンでストップウォッチを作成する
私はそれがスレッドの問題であると仮定しますが、それを克服する方法はありますか?
この例は非常に便利です。
public partial class MainWindow: Window
{
DispatcherTimer dispatcherTimer = new DispatcherTimer();
Stopwatch stopWatch= new Stopwatch();
string currentTime = string.Empty;
public MainWindow()
{
InitializeComponent();
dispatcherTimer .Tick += new EventHandler(dt_Tick);
dispatcherTimer .Interval = new TimeSpan(0, 0, 0, 0, 1);
}
void dt_Tick(object sender, EventArgs e)
{
if (stopWatch.IsRunning)
{
TimeSpan ts = sw.Elapsed;
currentTime = String.Format("{0:00}:{1:00}:{2:00}",
ts.Minutes, ts.Seconds, ts.Milliseconds/10);
clocktxt.Text = currentTime;
}
}
private void startbtn_Click(object sender, RoutedEventArgs e)
{
stopWatch.Start();
dispatcherTimer .Start();
}
private void stopbtn_Click(object sender, RoutedEventArgs e)
{
if (stopWatch.IsRunning)
{
stopWatch.Stop();
}
elapsedtimeitem.Items.Add(currentTime);
}
private void resetbtn_Click(object sender, RoutedEventArgs e)
{
stopWatch.Reset();
clocktxt.Text = "00:00:00";
}
}
あなたの問題を見つけるために役立つコードがあります。 –
[StopWatch Class](https://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch(v = vs.110).aspx)はどうですか? – 3615
どのような目的のために「ストップウォッチ」(何かを測定する?クロックアプリケーション?)を使いたいですか?問題のあるコードを表示することはできますか(*「秒にカウントするのに約10秒かかる」*)?タイマーの不正確さを理解するには、[this](http://stackoverflow.com/q/1512294/1997232)をよく読んでください。 – Sinatr