ser*_*hio 3 .net timer .net-2.0
我有一个方法将BO 链接Connection.AliveInterval到System.Timers.Timer(.NET 2).
一些连接被设置为始终连接.
在这种情况下设置是否可以
if (myConnection.AliveInterval == Connection.TimeInfinite)
{
myTimer.Interval = double.PositiveInfinity;
}
Run Code Online (Sandbox Code Playgroud)
?
我是否应该期望Timer会抛出异常或上升Elapsed事件?
也许你指的是当我使用以下构造函数时,我在MonoDevelop和VS中的黄色工具提示中获得的一些误导性信息System.Timers.Timer:
将值设置为Infinite milliseconds以禁用定期信令.
你得到这个信息与类型的参数Int32,UInt32或者TimeSpan.有些令人惊讶的是,这些类型不提供名为的属性Infinite.
您想使用a Timeout.Infinite来获得所需的结果.
请注意,在线参考正确描述了它:
指定Timeout.Infinite以防止计时器启动.
编辑:我刚刚意识到这不适用于setter,只适用于计时器的构造函数.所以你最好的选择可能就是使用myTimer.Stop(),如@spender或@Bolu myTimer.Enabled = false所评论的那样.