WPF 如何知道当前有多少个 DispatcherTimer 在运行

在 WPF 调试中,对于 DispatcherTimer 定时器的执行,没有直观的调试方法。本文来告诉大家如何在 WPF 中调试当前主线程有多少个 DispatcherTimer 在运行

在 WPF 中,如果有 DispatcherTimer 定时器在执行,将会影响到主线程的执行,将会让主线程诡异忙碌。或者有 DispatcherTimer 定时器忘记订阅 Tick 同时也忘记设置时间,将会不断消耗主线程资源。在遇到没有任何的交互时,此时出现的主线程卡的问题,可以优先尝试了解是否 DispatcherTime 定时器的问题

如以下代码,在界面创建一个按钮,点击按钮时将会创建和运行 DispatcherTime 定时器

  <Grid>
    <Button Margin="10,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top" Content="按钮" Click="Button_OnClick" />
  </Grid>
在 Button_OnClick 加上创建和运行 DispatcherTimer 定时器的代码

        private void Button_OnClick(object sender, RoutedEventArgs e)
        {
            var dispatcherTimer = new DispatcherTimer()
            {
                Interval = TimeSpan.FromSeconds(1)
            };
            dispatcherTimer.Start();
        }
假定需要调试在进入 Button_OnClick 方法,当前主线程有多少 DispatcherTimer 定时器在运行。可以在此方法上添加断点,如下图

进入 VisualStudio 的监视界面,输入 System.Windows.Threading.Dispatcher.CurrentDispatcher._timers 即可了解当前主线程有多少个 DispatcherTime 定时器在运行。根据 Dispatcher.CurrentDispatcher 的定义,此 CurrentDispatcher 是 ThreadStatic 线程静态,因此以上调试断点必须落在主线程执行的代码


————————————————
版权声明:本文为CSDN博主「lindexi_gd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lindexi_gd/article/details/117745865

相关推荐

  1. WPF 如何知道当前多少 DispatcherTimer 运行

    2024-01-06 10:04:02       34 阅读
  2. WPF DispatcherTimer用法

    2024-01-06 10:04:02       28 阅读
  3. C语言如何计算字符串中多少单词?

    2024-01-06 10:04:02       22 阅读
  4. Leetcode16-多少小于当前数字的数字(1365)

    2024-01-06 10:04:02       36 阅读
  5. LeetCode 1365. 多少小于当前数字的数字

    2024-01-06 10:04:02       19 阅读
  6. 如何python程序内连续运行代码

    2024-01-06 10:04:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 10:04:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 10:04:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 10:04:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 10:04:02       18 阅读

热门阅读

  1. JVM面试系列-03

    2024-01-06 10:04:02       27 阅读
  2. 牧马人K87调节键盘灯光模式

    2024-01-06 10:04:02       38 阅读
  3. Es 学习记录

    2024-01-06 10:04:02       34 阅读
  4. Shell:常用命令之dirname与basename

    2024-01-06 10:04:02       30 阅读
  5. 动手学深度学习—深度学习计算

    2024-01-06 10:04:02       29 阅读
  6. Apache绑定指定地址与端口

    2024-01-06 10:04:02       36 阅读
  7. ARM CCA机密计算架构软件栈简介

    2024-01-06 10:04:02       36 阅读
  8. leetcode231 判断一个给定的整数是否是2的n次幂

    2024-01-06 10:04:02       33 阅读