超时.. net 4.0中的InfiniteTimespan
本文关键字:中的 InfiniteTimespan net 超时 | 更新日期: 2023-09-27 17:49:49
我确实知道Timeout.InfiniteTimespan
在。net 4.0中不存在。
注意,Timeout.Infinite
也存在于。net 4.0
我调用了这两个方法:
// the Change-Method
public bool Change(
TimeSpan dueTime,
TimeSpan period
)
// the Constructor of Timer
public Timer(
TimerCallback callback,
Object state,
TimeSpan dueTime,
TimeSpan period
)
在某些情况下,dueTime
参数需要是无限的,这意味着事件不被触发。我知道我可以简单地使用其他超载,但我觉得有些事情必须更简单。
我已经尝试使用new TimeSpan(0, 0, -1)
或new TimeSpan(-1)
作为dueTime。*但是这会抛出一个指向dueTime
参数的ArgumentOutOfRangeException
。
是否有可能创建一个像。net 4.5中的Timeout.InfiniteTimespan
那样的文字?
TimeOut.InfiniteTimeSpan
在TimeOut
类中的定义为:
public static readonly TimeSpan InfiniteTimeSpan = new TimeSpan(0, 0, 0, 0, Timeout.Infinite);
其中Timeout.Infinite
设置为-1
,因此它传递的是 -1
毫秒值部分。
你可以这样做:
TimeSpan InfiniteTimeSpan = new TimeSpan(0, 0, 0, 0, -1);
无限时间跨度是TimeSpan
,毫秒设置为-1
所以你可以直接输入
TimeSpan infinite = TimeSpan.FromMilliseconds(-1);
如果您的模型支持"due"时间不存在的事件,那么将其设置为无穷大表示这似乎是错误的。为什么不让参数为空呢?