gpt4 book ai didi

c# - 为什么 DispatcherTimer 在某个随机时间后停止触发?

转载 作者:行者123 更新时间:2023-11-30 17:56:56 24 4
gpt4 key购买 nike

我已经正确设置 DispatchTimer 每秒触发一次-

OneSecondChecker = new DispatcherTimer();
OneSecondChecker.Tick += new EventHandler(OneSecondChecker_Tick);
OneSecondChecker.Interval = new TimeSpan(0, 0, 1);
OneSecondChecker.Start();

问题:它会在一段时间内正确触发,然后就停止触发。

附加信息:现在你可能会问它有什么作用?如果方法 OneSecondChecker_Tick() 正在运行,则有一个类级(静态) bool 变量设置为 true,如果未运行则设置为 false,这样我们就不会同时运行此方法的两个实例即使它被设置为每秒触发一次。应用程序要求确保 OneSecondChecker_Tick() 运行时没有任何延迟。我也不想在无限循环中运行。在 OneSecondChecker_Tick() 运行之前进行第二次检查以查看表值是否已更新。正是该表值“某种程度上”通知 OneSecondChecker_Tick() 运行。该表值由另一个应用程序更新。

在方法本身中,我确实调用了使用 TPL 并行运行线程的方法。不知道有没有关系。

编辑我仍然无法弄清楚这一点。可能是应用程序被卡住了。任务管理器并没有这么说。是否可以判断应用程序是否未从任务管理器以外的其他地方响应?

最佳答案

问题不在于 DispatchTimer。它甚至不是 TPL。问题在于代码在无限循环中运行并导致堆栈溢出 - 之后它停止触发。

关于c# - 为什么 DispatcherTimer 在某个随机时间后停止触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com