上篇我们写了《参考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延时执行功能》 一样很简单?欢迎您留言一起讨论。