Ошибка времени отрицательную погрешность Макс значения int
Привет
private void timingToolStripMenuItem_Click(object sender, EventArgs e) { StartTimer(new TimeSpan(10, 00 , 0), new TimeSpan(24,00 , 0), ProcessViewType.SingleRun, false); StartTimerH(new TimeSpan(09, 30, 0), new TimeSpan(01, 00, 0), ProcessViewType.ReportToBranch, false); } protected void StartTimer(TimeSpan scheduledRunTime, TimeSpan timeBetweenEachRun,ProcessViewType pc,bool Hourly) { // Initialize timer double current = DateTime.Now.TimeOfDay.TotalMilliseconds; double scheduledTime = scheduledRunTime.TotalMilliseconds; double intervalPeriod = timeBetweenEachRun.TotalMilliseconds; // calculates the first execution of the method, either its today at the scheduled time or tomorrow (if scheduled time has already occured today) double firstExecution = current > scheduledTime ? intervalPeriod + (intervalPeriod - current) : scheduledTime - current; System.Threading.TimerCallback callback = null; callback = new System.Threading.TimerCallback(runSingleRun); _timer = new System.Threading.Timer(callback, null, Convert.ToInt32(firstExecution), Convert.ToInt32(intervalPeriod)); }
когда я запускаю этот код в 12: 00 вечера, я получаю ошибку, которая является "необработанным исключением типа' System.Об' произошел в mscorlib.dll
Дополнительная информация: число должно быть неотрицательным и меньше или равно Int32. MaxValue или -1."
Что я уже пробовал:
Когда я меняю время на 9: 00 утра, эта ошибка не отображается.
Graeme_Grant
Вы понимаете, что такое отладка? Вы проверили значение переменных в строке, вызывающей ошибку? Вы увидите, почему именно.
CHill60
Когда вы впервые опубликовали этот вопрос 4 дня назад, вам посоветовали использовать отладчик, чтобы определить, что происходит.
Мы не можем отладить это для вас - runSingleRun и ProcessViewType нам неизвестны
Member 10525430
я нашел ошибку на вопросе 4 дня назад.Это другая ошибка, это я не могу запустить промежуток времени прохождения, он ловит исключение.
Graeme_Grant
Как уже упоминалось выше, простая отладка 101, вы увидите свою проблему.
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Ralf Meier
пробовали ли вы добавить 1 день к значению, если оно отрицательное (потому что вы вычитаете более высокое значение из более низкого значения из дневного изменения) ?
Richard MacCutchan
Вы не должны использовать двойные типы для интегральных значений, это приведет только к проблемам.