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