C#秒表即时更新

(我的第一个问题在这里!)嗨,我是c#的初学者。 我试图构建一个简单的计时器(在Windows.Forms中)。 我做了一个标签来指示时间,并使用了StopWatch类(来自system.diagnostics)。 启动/停止秒表的触发事件是空格键KeyDown事件。 第二次点击后,秒表停止,Label.text被分配给Stopwatch.Elapsed值。 我想不断更新标签,但我不知道如何。 如果我在事件本身中使用while(StopWatchName.IsRunning) ,则事件将无限期地继续,并且不会响应第二次点击。

提前感谢任何想法!

您可能应该有一个频繁启动的计时器(例如每10毫秒) – 启动秒表时启动计时器,并在停止秒表时停止计时器。 计时器刻度事件只是从秒表设置标签的Text属性。

计时器的间隔当然不会是准确的 – 但这没关系,因为关键是要依靠秒表来实际计时。 定时器只是经常更新标签。

您可能想要使用System.Timers。 Timer类为了每隔几秒钟调用一个函数来更新你的UI,用时间表示值。

这是一个很好的示例: http : //msdn.microsoft.com/en-us/library/system.timers.timer.aspx

基本上,样本中的OnTimedEvent事件函数将在您的代码中实现此function。

编辑:约翰是正确的(见评论)你应该使用Forms.Timer你可以避免线程编组。 http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.aspx

TimerEventProcessor将成为该示例中关注的函数。