【问题标题】:How to do a delay of timer start properly?如何正确延迟计时器启动?
【发布时间】:2018-04-28 08:20:18
【问题描述】:

使用 Winforms,我需要延迟事件 timer1_Tick 本身的执行,或者也可能延迟 timer1.Start()

我不知道如何正确地做到这一点。谁能给个建议?

【问题讨论】:

    标签: c# winforms events timer delay


    【解决方案1】:

    只需将 Thread.Sleep 放在处理事件之前

    public void Timer1_tick(...){
       System.Threading.Thread.Sleep(1000);
    }
    

    或者如果你需要延迟 timer1.Start() 的执行

    System.Threading.Thread.Sleep(1000);
    timer1.Start();
    

    【讨论】:

    • 我会试试的。谢谢。
    【解决方案2】:

    1.) 使用另一个计时器(“帮助器”)在第一个滴答时启动预期计时器,然后停止此帮助器计时器。 2.) 计算计时器的滴答声,仅在滴答计数超过限制后执行事件处理程序代码:

    此示例仅在前 100 个滴答声后启动事件处理程序代码:

    int tickCount;
    public void Timer1_tick(...)
    {
       if( tickCount++ < 100 ) return;
    
       // Do something...
    }
    

    【讨论】:

    • 在这么短的时间内提供两个有用的建议!这很及时!一个念头来了。此外,最好将引擎更改为具有更友好和易于理解的 UI 的另一个引擎。
    • 欢迎来到 SO!如果您觉得我的建议有用,请使用向上箭头图标进行投票,这会为我赢得积分 :-) 要插入示例代码,请使用编辑器工具栏中的 {} 图标。但是,在提问时上传整个源文件并没有什么用处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2016-11-06
    • 2019-02-21
    • 2010-12-15
    • 2011-03-28
    相关资源
    最近更新 更多