2008-11-10 4 views

답변

0

타이머를 사용하십시오. 그것은 당신의 필요에 더 잘 어울립니다.

편집 : 다른 말했듯이, 나는 당신이 스톱워치 도움이 기대하는 방법을 잘 모르겠어요 System.Windows.Forms.Timer

+0

아, 어느 쪽이 맞습니까? bcl에는 3 가지 타이머가 있습니다. –

11

과 함께 할 것입니다. 타이머는 분명 나에게 옳은 대답처럼 들린다. several different timers available이 있음을 알아야합니다.이 경우 System.Windows.Forms.Timer은 WinForms 앱에 대해 원하는 것일 수도 있고 WPF에 대해서는 System.Windows.Threading.DispatcherTimer 일 수 있습니다.

+0

그가 WPF를하고 있지 않는 한. 타이머에만 WinForm을 가져 오는 것은 과도한 것입니다 :-) –

+0

True. 나는 System.Windows.Forms를 추측하고 있었다. 편집 중 ... –

+0

분명히 "while (stopwatch.ElapsedTime Jimmy

4

Windows 폼에는 Timer 컨트롤 (여기에 WPF's version)이 있습니다.

이러한 타이머를 사용하는 이유는 타이머가 UI 스레드에서 실행되기 때문이며 System.Threading.Timer 또는 실행 된 다른 방법을 사용하면 수행해야 할 일반적인 멀티 스레드 if-InvokeRequried-Invoke 춤을 수행 할 필요가 없기 때문입니다 다른 스레드.

은 (존에서 WPF 링크를 훔친)

+0

죽었다. System.Timers.Timer 및 System.Threading.Timer도 있지만 UI 요소를위한 것이기 때문에 Forms 타이머가 아마도 사용할 수있는 방법 일 것입니다. –

+0

그래, 양식의 타이머로 InvokeRequired 필요가 없습니다. – Will

3

@ 존 소총의 대답에 관련, 그 이유는 (프레임 워크의 3 중)이 System.Windows.Forms.Timer 타이머를 원하는 그것을 걸릴 것입니다 UI 스레드에서 타이머 코드를 실행하는 데주의를 기울이십시오. 다른 타이머는 그렇게하지 않으므로 .CanInvoke 및 Invoke()를 호출하거나 (조금 더 간단하지만 여전히 성가신 SynchronizationContext를 사용하여) 호출 할 수 있습니다.

+0

System.Timers.Timer의 대상 스레드를 지정할 수 있지만 Forms 타이머에는 필요없는 추가 작업이 있습니다. –

+0

글쎄, 난 몰랐어! 조엘 감사합니다. –

관련 문제