-2

我有这行代码

new Timer(_CallBackProcessABC, null, 5000, Timeout.Infinite);

有人可以解释这条线的作用吗?这是在执行多长时间后执行的?

如何将其设置为每 5 分钟执行一次?

4

4 回答 4

3
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

于 2013-10-14T08:54:33.687 回答
2

5000代表毫秒,你需要使用,300000也就是1000 m/s * 60 * 5

于 2013-10-14T08:56:09.607 回答
1

尝试:

new Timer(_CallBackProcessABC, null, 1000 * 60 * 5, Timeout.Infinite);

计时器以毫秒为单位工作,如果你这样使用它,编译器会在编译时优化计算,但这样更具可读性。

于 2013-10-14T08:54:19.820 回答
1

如此处所述:http: //msdn.microsoft.com/en-us/library/ah1h85ch.aspx

5000 是以毫秒为单位的时间,因此您可以将其更改为:

new Timer(_CallBackProcessABC, null, 300000, Timeout.Infinite);

其中 300000 表示 5 分钟(以毫秒为单位)。

于 2013-10-14T08:56:06.277 回答