0
내 스톱워치를 설치해야합니다. 디스패처 타이머를 사용하여 1 밀리 초 간격으로 시도했습니다. 그러나 시계는 초속까지 카운트하는 데 약 10 초가 걸리는 속도로 실행됩니다.WPF 시간 스톱워치에서 스톱워치 만들기
나는 이것이 스레딩 문제라고 생각하지만 그것을 극복하는 방법은 무엇입니까?
내 스톱워치를 설치해야합니다. 디스패처 타이머를 사용하여 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