温馨提示×

C#中轮询是否支持动态间隔

c#
小樊
84
2024-08-13 21:58:40
栏目: 编程语言

在C#中,可以使用System.Threading.Timer类来实现轮询操作。该类可以设置时间间隔,并在指定的时间间隔后执行指定的方法。

在Timer类的构造函数中可以指定时间间隔,并且在回调函数中可以根据需要动态改变时间间隔。例如,可以在回调函数中根据某些条件来决定下一次轮询的时间间隔。

using System;
using System.Threading;

class Program
{
    static Timer timer;

    static void Main()
    {
        timer = new Timer(TimerCallback, null, 0, 1000); // 1秒钟轮询一次

        Console.ReadLine();
    }

    static void TimerCallback(object state)
    {
        Console.WriteLine(DateTime.Now);

        // 根据某些条件来决定下一次轮询的时间间隔
        if (someCondition)
        {
            timer.Change(2000, Timeout.Infinite); // 2秒钟后再次轮询
        }
        else
        {
            timer.Change(1000, Timeout.Infinite); // 1秒钟后再次轮询
        }
    }
}

在回调函数中,可以使用Timer类的Change方法来动态修改时间间隔。Change方法接受两个参数,第一个参数表示下一次轮询的间隔时间,第二个参数表示取消当前的轮询操作。通过在回调函数中动态改变时间间隔,可以实现动态间隔的轮询操作。

0