c# - 在 C# 中每 x 秒执行一次操作,持续 y 分钟

标签 c# timer

我需要每 5 秒运行一个函数,持续 10 分钟。

我使用计时器运行它 5 秒,但如何将计时器限制为仅 10 分钟?

最佳答案

只需在经过的处理程序中捕获您想要停止和结束计时器的时间。这是一个示例(注意:我使用了 System.Threading.Timer timer。为您正在做的事情选择合适的计时器。例如,您可能在 System.Windows.Forms.Timer 如果您在 Winforms 中编写。)

public class MyClass
{
    System.Threading.Timer Timer;
    System.DateTime StopTime;
    public void Run()
    {
        StopTime = System.DateTime.Now.AddMinutes(10);
        Timer = new System.Threading.Timer(TimerCallback, null, 0, 5000);
    }

    private void TimerCallback(object state)
    {
        if(System.DateTime.Now >= StopTime)
        {
            Timer.Dispose();
            return;
        }
        // Do your work...
    }
}

关于c# - 在 C# 中每 x 秒执行一次操作,持续 y 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786672/

相关文章:

c# - 如何访问第三个嵌套 ListView 属性

c# - 分级价格无法正常工作 (nopcommerce)

Javascript - 基本秒表可以多次启动,提高 watch 速度。解决方案?

JAVA:启动定时器,0秒停止定时器,重新启动定时器

java - 屏幕关闭时计时器停止工作

c# - MapPath 与 VirtualPathUtility.ToAbsolute

c# - 如何在不同的测试数据存储格式之间进行选择?

c# - RegisterWaitForSingleObject 与 System.Timers

delphi - 定时器进程影响delphi中的用户界面

c# - 如何在一行代码中转换和使用一个对象?