Timeout.InfiniteTimespan в.Net 4.0?
Я действительно знаю, что 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)
как должное. * Но это бросает ArgumentOutOfRangeException
указывая на dueTime
Параметр.
Можно ли как-то создать буквальную работу, подобную Timeout.InfiniteTimespan
из.NET 4.5?
3 ответа
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);
Если ваша модель поддерживает события, в которых "ожидаемое" время не существует, установите его в бесконечность, чтобы указать, что это кажется неправильным. Почему бы не сделать параметр обнуляемым?