gpt4 book ai didi

c# - 定时器比 System.Threading.Timer 更可靠

转载 作者:太空狗 更新时间:2023-10-29 20:03:21 28 4
gpt4 key购买 nike

我目前以 10 秒为间隔使用 System.Threading.Timer。我添加了一小段代码来在每次计时器触发时写入文件,虽然大部分时间它都会按时触发,但有时(大概是在购买应用程序的其余部分时),无法触发 30或 40 秒,然后快速连续地反复发射。

我可以在 .NET 3.5 中使用更可靠的计时器吗?

定时器设置如下

Timer someTimer = new Timer(new TimerCallback(SomeMethod), null, 0, 10000);

...回调是:

private static void SomeMethod(object state)

但是,很难提供比这更多的代码,因为计时器通常会正确触发。当它嵌入到一个大型应用程序(约 100,000 行左右)中时,随着多个线程被触发,左、右和中间,您会慢慢开始看到计时器间歇性地触发。我看到几篇帖子暗示 ThreadPool 可能已耗尽,所以我目前正在查看这是否是我遇到的情况。

最佳答案

在.net中引用不同的定时器类

Different Timer class in .net

.NET 中有三个称为“Timer”的计时器类。听起来您正在使用 Windows 窗体,但实际上您可能会发现 System.Threading.Timer 类更有用 - 但要小心,因为它会在池线程上回调,所以您不能直接与您的窗体交互回调。

更准确的计时器 - 根据 MSDN

Windows 窗体计时器组件是单线程的,精度限制为 55 毫秒。如果您需要更精确的多线程计时器,请使用 System.Timers 命名空间中的 Timer 类。

关于c# - 定时器比 System.Threading.Timer 更可靠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781853/

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