c# - 如何在 C# 中执行每次迭代延迟 1 分钟的无限循环?

标签 c# .net

如何在 C# 中执行每次迭代延迟 1 分钟的无限循环?

有什么方法可以使用带有 x++ 的某种变量并将 x 设置为某个非常大的数字吗?

最佳答案

解决方案1: 如果你想等待1分钟而不挂起你的Main Thread,使用Timer控件是很好的。

第 1 步:您需要订阅 Timer Tick 事件。
第 2 步:TimerInterval 属性设置为 60000 毫秒,以便每分钟引发一次事件。< br/> 第 3 步:Tick Event Handler 中执行您想要执行的任何操作。
第 4 步:您可以随时调用 timer1.Stop() 方法来停止计时器。

注意:如果您不停止 计时器,它会变成无限。 如果你想停止 定时器,你可以调用timer1.Stop();

    System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
    timer1.Interval=60000;//one minute
    timer1.Tick += new System.EventHandler(timer1_Tick);
    timer1.Start();

    private void timer1_Tick(object sender, EventArgs e)
    {
         //do whatever you want 
    }

解决方案 2:

编辑: 来自以下评论:如果 OP(原始海报)试图从 Console Application System.Timers.Timer 可以使用

注意:不是处理 Tick 事件,OP 必须处理 Elapsed 事件。

完整代码:

    class Program
    {
        static  System.Timers.Timer timer1 = new System.Timers.Timer();
        static void Main(string[] args)
        {
            timer1.Interval = 60000;//one minute
            timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Tick);
            timer1.Start();
            Console.WriteLine("Press \'q\' to quit the sample.");
            while (Console.Read() != 'q') ;
        }
        static private void timer1_Tick(object sender, System.Timers.ElapsedEventArgs e)
        {
            //do whatever you want 
            Console.WriteLine("I'm Inside Timer Elapsed Event Handler!");
        }
    }

关于c# - 如何在 C# 中执行每次迭代延迟 1 分钟的无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20500906/

相关文章:

c# - 更改 .NET 通用字典中的顺序

c# - 应用面向方面的编程

c# - 不能在派生类的 IEnumerable 基类上使用 LINQ 方法

c# - WPF - 将窗口置于最前面

javascript - View 和 Controller mvc5 之间的双向数据绑定(bind)

c# - EasyNetQ - 从现有队列接收

c# - 将 JSON 字符串解析为 .NET 对象

c# - 创建具有频率的汽车声音

c# - Kinect模式识别

c# - 具有较大最大值的 System.Windows.Forms.TrackBar 内存使用