将定时器间隔设置为无限

ser*_*hio 3 .net timer .net-2.0

我有一个方法将BO 链接Connection.AliveIntervalSystem.Timers.Timer(.NET 2).

一些连接被设置为始终连接.

在这种情况下设置是否可以

if (myConnection.AliveInterval == Connection.TimeInfinite)
{
    myTimer.Interval = double.PositiveInfinity;
}
Run Code Online (Sandbox Code Playgroud)

我是否应该期望Timer会抛出异常或上升Elapsed事件?

Fel*_*ala 8

也许你指的是当我使用以下构造函数时,我在MonoDevelop和VS中的黄色工具提示中获得的一些误导性信息System.Timers.Timer:

将值设置为Infinite milliseconds以禁用定期信令.

你得到这个信息与类型的参数Int32,UInt32或者TimeSpan.有些令人惊讶的是,这些类型不提供名为的属性Infinite.

您想使用a Timeout.Infinite来获得所需的结果.

请注意,在线参考正确描述了它:

指定Timeout.Infinite以防止计时器启动.

编辑:我刚刚意识到这不适用于setter,只适用于计时器的构造函数.所以你最好的选择可能就是使用myTimer.Stop(),如@spender或@Bolu myTimer.Enabled = false所评论的那样.