参考Javascript中的setInterval方法,在C#中实现SetInterval周期重复执行功能

时间:2019-5-24 作者:WilliamChan

上篇我们写了《参考Javascript中的setTimeout方法,在C#中实现SetTimeout延时执行功能》,本篇另一个与之相似的常用方法SetInterval();

同样,大家也都知道Javascript中的setInterval方法,先看下在其定义说明:

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

 语法 

setInterval(code,millisec[,"lang"])
参数描述
code必需。要调用的函数或要执行的代码串。
millisec必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。

 实例 

<html>
<body>

<input type="text" id="clock" size="35" />
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock()
  {
  var t=new Date()
  document.getElementById("clock").value=t
  }
</script>
</form>
<button onclick="int=window.clearInterval(int)">
Stop interval</button>

</body>
</html>

接下来让我们在C#中实现 SetInterval方法

        /// <summary>
        /// 在指定时间周期重复执行指定的表达式
        /// </summary>
        /// <param name="interval">时间(以毫秒为单位)</param>
        /// <param name="action">要执行的表达式</param>
        public static void SetInterval(Action action, double interval)
        {
            var timer = new Timer(interval);
            timer.Elapsed += (sender, e) => { action(); };
            timer.Enabled = true;
        }

使用时这么来:

SetInterval(new Action(()=>{ MessageBox.Show("3秒后执行");}),3000);

这样我们就在C#中实现了 SetInterval()方法!

怎么样?是不是跟 《参考Javascript中的setTimeout方法,在C#中实现SetTimeout延时执行功能》 一样很简单?欢迎您留言一起讨论。

声明:若您对本文内容有任何意见,欢迎发送邮件至:admin@zhidaobu.com,本站会尽快回应并做出相应处理。