定时器使用

最近工作中遇到了一个场景,需要定时请求后台数据并更新到界面上,在C#中,有三种定时器:
1.System.Timers.Timer
2.System.Threading.Timer
3.System.Windows.Threading.DispatcherTimer
1,2两种方式差不多,都是用于后台定时任务,不涉及UI更新,我就是用了第二种,然后一段时间后导致cpu占满了,后来发先如果要在定时器中更新UI必须使用第三种方式,该方式可以在UI线程上触发事件,可以直接更新UI。

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

namespace DispatcherTimerExample
{
    public partial class MainWindow : Window
    {
        private DispatcherTimer timer;

        public MainWindow()
        {
            InitializeComponent();

            // 创建 DispatcherTimer 实例
            timer = new DispatcherTimer();
            
            // 设置定时器间隔为1秒
            timer.Interval = TimeSpan.FromSeconds(1);

            // 绑定 Tick 事件处理程序
            timer.Tick += Timer_Tick;
        }

        private void Timer_Tick(object sender, EventArgs e)
        {
           //更新UI
        }

        private void startButton_Click(object sender, RoutedEventArgs e)
        {
            // 启动定时器
            timer.Start();
        }

        private void stopButton_Click(object sender, RoutedEventArgs e)
        {
            // 停止定时器
            timer.Stop();
        }
    }
}

相关推荐

  1. 定时器使用

    2024-05-03 05:34:01       9 阅读
  2. golang定时器使用示例

    2024-05-03 05:34:01       13 阅读
  3. uniapp 使用定时器和取消定时器

    2024-05-03 05:34:01       21 阅读
  4. SpringBoot 定时器@Scheduled的使用

    2024-05-03 05:34:01       17 阅读
  5. 【Spring】@Scheduled 定时器注解使用

    2024-05-03 05:34:01       15 阅读
  6. uni-app 中使用定时器和取消定时器

    2024-05-03 05:34:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-03 05:34:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-03 05:34:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-03 05:34:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-03 05:34:01       20 阅读

热门阅读

  1. Web开发之上传图片

    2024-05-03 05:34:01       9 阅读
  2. CANopen学习笔记

    2024-05-03 05:34:01       10 阅读
  3. 揭秘靠信息差搞钱的三个步骤!

    2024-05-03 05:34:01       12 阅读
  4. 快速了解Linux IPC

    2024-05-03 05:34:01       13 阅读
  5. 嵌入式-进程、线程

    2024-05-03 05:34:01       10 阅读
  6. PostgresQL-丢失各种数据文件如何恢复

    2024-05-03 05:34:01       11 阅读
  7. AtCoder ABC351 A-D题解

    2024-05-03 05:34:01       10 阅读
  8. 【无标题】

    2024-05-03 05:34:01       11 阅读
  9. Docker网络详解

    2024-05-03 05:34:01       9 阅读
  10. 由特征值和特征向量求矩阵的逆

    2024-05-03 05:34:01       9 阅读
  11. VUE2从入门到精通(二)

    2024-05-03 05:34:01       12 阅读