每2秒运行一个函数

本文关键字:一个 函数 2秒 运行 | 更新日期: 2023-09-27 18:16:07

    public void InitTimer()
    {
        timer1 = new Timer();
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Interval = 200; // in milliseconds
        timer1.Start();
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        MessageBox.Show("test");
    }

在。net中,我如何每小时(或每小时特定的时间间隔)引发一个事件?

我是c#的新手,但我不知道哪里出了问题。我试图在这个例子中每2秒显示一个消息框。没有错误,消息框只是没有显示。

每2秒运行一个函数

您忘记在加载中调用函数了

我尝试了您的代码(将200ms更改为2000ms),并且确实每2秒显示一次消息框,因此问题不在于代码,而更有可能是您调用它的方式。我刚刚创建了一个示例Winforms应用程序,并在窗体的Load事件中调用InitTimer:

    private void Form1_Load(object sender, EventArgs e)
    {
        InitTimer();
    }

当您创建项目时,您是否创建了Windows窗体应用程序?例如,您不应该创建控制台应用程序。

        Timer timer1 = new Timer();
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Interval = 2000; // in miliseconds
        timer1.Start();

您需要在timer1之前添加一个额外的Timer这是可行的,但请确保您初始化定时器

将定时器的间隔设置为您需要的值。

200表示200ms

所以Interval = 2000表示代码每两秒触发一次

但是你的问题在哪里?什么不起作用?还有一些关于ui和非ui线程的问题

一小时有60分钟,一分钟有60秒,一秒有1000毫秒所以你可以有

timer1.Interval = 60 * 60 * 1000; // Every hour

如果您想避免锁定线程,您可以始终生成一个新线程并在那里继续轮询。使用相同的代码,但是