【问题标题】:Run Function base of Time on Background在后台运行基于时间的函数
【发布时间】:2013-01-21 01:30:43
【问题描述】:

我确实有一个功能可以更新我的 UI: 目前我在我的 Action 函数中调用这个函数超过 8 次,这将更新我的 UI

   public void CheckStatus()
        {
             this.ovl_stacker1.FillColor =
             OvalShape == MEssage.EMPTY ? Color.Red :
                        OvalShape == Message.WARNING ? Color.Yellow : Color.Green;
            this.OvalShape .Refresh();
}

我怎样才能让这个功能在我的主服务器上每 5 秒自动运行一次? (因为我不想多次调用其他函数中的函数)

这是我的动作函数

       public void Action()
{
//do something....
checkstatus();
//do something.......
checkstatus();
//do something........
checkstatus();
...
...
..
}

【问题讨论】:

    标签: c# function time timer


    【解决方案1】:

    要每 5 秒调用一次方法,您可以使用计时器,但我认为这不是正确的解决方案。 (虽然,要让计时器工作,您还需要让 UI 线程处于空闲状态,但您似乎没有这样做。)

    相反,您应该在实际更改状态时调用CheckStatus(),最好是在相关属性的设置器中。

    【讨论】:

      【解决方案2】:

      我想你会想要使用System.Windows.Forms.Timer

      【讨论】:

      • 小心使用这个计时器,因为它在后台线程上运行,这意味着您无法从中访问 UI。
      • 不错,我更新为指向 System.Windows.Forms.Timer,它非常适合与 UI 一起使用。
      猜你喜欢
      • 1970-01-01
      • 2020-08-29
      • 2010-10-15
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 2019-08-30
      • 1970-01-01
      相关资源
      最近更新 更多