C# .Net 4.0中的Timeout.InfiniteTimespan?
我确实知道,C# .Net 4.0中的Timeout.InfiniteTimespan?,c#,.net,timer,.net-4.0,.net-4.5,C#,.net,Timer,.net 4.0,.net 4.5,我确实知道,Timeout.InfiniteTimespan在.NET4.0中不存在 注意,.NET4.0中还存在Timeout.Infinite 我称这两种方法为: // the Change-Method public bool Change( TimeSpan dueTime, TimeSpan period ) // the Constructor of Timer public Timer( TimerCallback callback, Object
Timeout.InfiniteTimespan
在.NET4.0中不存在
注意,.NET4.0中还存在Timeout.Infinite
我称这两种方法为:
// 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
参数需要是无限的,这意味着不会触发事件。我知道我可以简单地使用其他重载,但我觉得有些事情必须更简单
我已经尝试使用newtimespan(0,0,-1)
或newtimespan(-1)
作为dueTime*但这会抛出一个指向dueTime
参数的ArgumentOutOfRangeException
是否有可能从.NET 4.5中创建一个类似超时.InfiniteTimespan的文本工作?如果您的模型支持不存在“到期”时间的事件,则将其设置为无穷大以指示这似乎是错误的。为什么不让参数为null呢 无限时间跨度只不过是
timespan
,毫秒设置为-1
所以,你可以这样做
TimeSpan infinite = TimeSpan.FromMilliseconds(-1);
TimeOut.InfiniteTimeSpan
在as中:
其中,Timeout.Infinite
设置为-1
,因此它将传递-1
毫秒值
你可以做:
TimeSpan InfiniteTimeSpan = new TimeSpan(0, 0, 0, 0, -1);
好像有点误会。。主题是未指定的
System.Threading.Timer
Ah。但是,我认为您的业务逻辑有问题-如果事件从未触发,那么为什么还要麻烦将其放入计时器?您是对的,它没有指定。尽管如此,别担心:)。。。它确实会在应该的时候触发,并且计时器从未初始化、停止和保持未使用状态。
TimeSpan InfiniteTimeSpan = new TimeSpan(0, 0, 0, 0, -1);