Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .Net 4.0中的Timeout.InfiniteTimespan?_C#_.net_Timer_.net 4.0_.net 4.5 - Fatal编程技术网

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);