Создал бесконечный секундомер который отсчитывает от 5 до 0, а когда значение секундомера доходит до нуля, начинает считать заново:
DispatcherTimer dispatcherTimer;
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
dispatcherTimer.Start();
DateTime stopwatch = new DateTime(0001, 1, 1, 0, 0, 0);
DateTime date1 = new DateTime(0001, 1, 1, 0, 0, 5);
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if (date1.CompareTo(stopwatch) != 0)
{
date1 = date1.AddTicks(-10000000);
Secundomer = date1.ToString("mm:ss");
}
else
{
date1 = date1.AddTicks(60000000);
}
}
Проблема в том, что после отсчета до нуля секундомер "думает" пару секунд и только после этого начинает отсчет заново. Как убрать эту задержку?
Он не "думает пару секунд", он продолжает работать как раньше, просто вы одну итерацию не обновляете значение на экране, поэтому вам так кажется. Вынесите вывод времени за пределы if
:
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if (date1 != stopwatch)
{
date1 = date1.AddSeconds(-1);
}
else
{
date1 = date1.AddSeconds(5);
}
Secundomer = date1.ToString("mm:ss");
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Как выполнить код (к примеру запустить CrashReporterexe) в случае вылета приложения?
ЗдравствуйтеВ процессе написания собственного API, сложилась такая ситуация:
Добрый день! Я тут подумал, а что если написать одну библиотеку где будет все необходимое, но тут возник вопросТак как я не опытный специалист...
Есть словарь валют, содержащий цену валюты и другие дополнительные параметры на биржеИмеет такой вид