如何在 WPF 中使用动态 DispatcherTimer 对象?

How to use dynamic DispatcherTimer object in WPF?

我想在我的 wpf 项目中使用动态 DispatcherTimer 对象。我有一个如下所示的计时器;

DispatcherTimer timer_log = new DispatcherTimer();

我有一个列表,名称是 log_durations。该列表具有持续时间。我用这个方法来管理定时器对象。

 int Log = 0,LogDuration=0;

  public void set_timer_log(int interval)
    {
        timer_log.Interval = TimeSpan.FromMilliseconds(interval);
        timer_log.Tick += timer_log_Tick;
        timer_log.IsEnabled = true;
    }

    private void timer_log_Tick(object sender, EventArgs e)
    {
        timer_log.IsEnabled = false;
        try
        {
            if (Log < logs.Length)
            {
                add_package_log(logs[Log]);
                Log++;
                LogDuration++;
                set_timer_log(log_durations[LogDuration]);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Timer Log Tick  Function Error:" + ex.Message);
        }
    }

因此,当我对列表中的日志持续时间求和时,例如 10 分钟。但是日志会在 30 秒后显示。 简而言之,计时器对象无法正常工作。问题是什么?没看到。

此代码运行良好。

 DispatcherTimer timer_log = new DispatcherTimer();
 timer_log.Tick += timer_log_Tick;
 int Log = 0,LogDuration=0;

 public void set_timer_log(int interval)
   {
    timer_log.Interval = TimeSpan.FromMilliseconds(interval);
    timer_log.IsEnabled = true;
   }

private void timer_log_Tick(object sender, EventArgs e)
   {
     timer_log.IsEnabled = false;
    try
      {
        if (Log < logs.Length)
           {
            add_package_log(logs[Log]);
            Log++;
            LogDuration++;
            set_timer_log(log_durations[LogDuration]);
           }
      }
    catch (Exception ex)
    {
        MessageBox.Show("Timer Log Tick  Function Error:" + ex.Message);
    }
}