【发布时间】:2019-01-31 17:42:27
【问题描述】:
所以我正在尝试制作一个计时器系统,但无论出于何种原因,当您将鼠标移到应用程序的 GUI 屏幕上时,标签会停止更新。
显示问题的 Gif: https://i.imgur.com/Jvi1AgF.gifv 这就是我尝试的另一个示例中发生的情况。
但是,在我的示例中,情况正好相反。它仅在更新 GUI 时更新。我不知道如何解决这个问题。
GIF:https://i.imgur.com/KezAVaj.gifv
public partial class MainWindow : Window
{
Stopwatch _stopwatch;
DispatcherTimer _timer;
public MainWindow()
{
InitializeComponent();
_stopwatch = new Stopwatch();
_timer = new DispatcherTimer();
_timer.Interval = new TimeSpan(10);
_timer.Tick += new EventHandler(Tick);
}
private void Tick(object sender, EventArgs e)
{
LabelTime.Content = _stopwatch.Elapsed.ToString(@"m\:ss\.ff");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
_stopwatch.Start();
_timer.Start();
}
}
【问题讨论】:
-
new TimeSpan(10)创建 1 微秒的 TimeSpan:docs.microsoft.com/en-us/dotnet/api/… -
奇怪,但这段代码对我来说很好用。
-
@Alexander 说真的,间隔为 1 微秒?
-
@Clemens 是的,认真的。
-
创建具有合理间隔的计时器,例如
TimeSpan.FromMilliseconds(10)并可选择增加其priority。
标签: c# wpf stopwatch dispatchertimer