我有这行代码
new Timer(_CallBackProcessABC, null, 5000, Timeout.Infinite);
有人可以解释一下这行吗?经过多长时间执行?
如何将其设置为每5分钟后执行一次?
答案 0 :(得分:3)
new Timer(_CallBackProcessABC, null, 5000, Timeout.Infinite);
在5000毫秒之后调用它
每5分钟运行一次:5 * 1000 * 60 ms
new Timer(_CallBackProcessABC, null, 0, 300000);
如上所述here period
以毫秒为单位
public Timer(
TimerCallback callback,
Object state,
int dueTime,
int period
)
类型:System.Int64回调调用之间的时间间隔, 以毫秒为单位。指定Timeout.Infinite以禁用定期 信令。
编辑:
要每5分钟运行一次,您需要指定period
(最后一个参数)而不是dueTime
。
答案 1 :(得分:2)
5000
表示毫秒,您需要使用300000
,即1000 m/s * 60 * 5
答案 2 :(得分:1)
尝试:
new Timer(_CallBackProcessABC, null, 1000 * 60 * 5, Timeout.Infinite);
计时器工作在几毫秒内,如果你这样使用它,编译器将在编译时优化计算,但它更像这样可读。
答案 3 :(得分:1)
如此处所述:http://msdn.microsoft.com/en-us/library/ah1h85ch.aspx
5000是以毫秒为单位的时间,因此您可以将其更改为:
new Timer(_CallBackProcessABC, null, 300000, Timeout.Infinite);
其中300000代表5分钟(以毫秒为单位)。