使用分派器计时器更新ui线程元素而不会产生延迟

时间:2019-04-14 20:58:36

标签: c# wpf

编辑:这不是dispatcherTimer doesn't work accurately的重复。这个问题与更新ui线程无关,而只是更新调度程序计时器本身。

我正在尝试制作一个C#WPF程序,该程序只会增加一些变量并每X毫秒更新标签。

我创建了一个名为Label_test的C#WPF窗口,并设置了一个调度程序计时器以每10毫秒执行一次,这将增加一个整数并更新标签。

using System;
using System.Windows;
using System.Windows.Threading;

namespace WPF_Test
{
    public partial class MainWindow : Window
    {
        DispatcherTimer dt = null;

        public MainWindow()
        {
            InitializeComponent();
            dt = new DispatcherTimer();
            dt.Interval = new TimeSpan(0, 0, 0, 0, 10);
            dt.Tick += Dt_Tick;
            dt.Start();
        }

        int value = 0;
        private void Dt_Tick(object sender, EventArgs e)
        {
            value += 1;
            Label_test.Content = "Value: " + value.ToString();
        }

    }
}

我希望标签大约每10毫秒更新一次,并且ui元素将刷新。取而代之的是,我得到了这种奇怪的随机间隔行为,如在该视频中所看到的那样,它似乎有时只是阻塞而似乎从未像预期的那样快。 https://drive.google.com/file/d/1ONg9i_F_3f-Oy_fnDHcaD9-GtaReL-78/view

0 个答案:

没有答案