У меня есть 2 таймера. Один из них подсчитывает каждый раз, когда он тикает; используя постоянный интервал или один случайный порог. Второй таймер отсчитывает до следующего тика в первом таймере.Как подсчитать время до следующего тика таймера?
Как прямо сейчас я делаю так:
private void btnStart_Click(object sender, EventArgs e)
{
nextClick = int.Parse(nudClickInterval.Value.ToString());
if (nudPlusMinus.Value != 0) tmrClickInterval.Interval = random.Next(int.Parse(nudClickInterval.Value.ToString()) - int.Parse(nudPlusMinus.Value.ToString()), int.Parse(nudClickInterval.Value.ToString()) + int.Parse(nudPlusMinus.Value.ToString()));
else tmrClickInterval.Interval = int.Parse(nudClickInterval.Value.ToString());
tmrClickInterval.Start();
}
private void tmrClickInterval_Tick(object sender, EventArgs e)
{
if (nudPlusMinus.Value == 0) tmrClickInterval.Interval = int.Parse(nudClickInterval.Value.ToString());
else tmrClickInterval.Interval = random.Next(int.Parse(nudClickInterval.Value.ToString()) - int.Parse(nudPlusMinus.Value.ToString()), int.Parse(nudClickInterval.Value.ToString()) + int.Parse(nudPlusMinus.Value.ToString()));
tmrNextClick.Interval = tmrClickInterval.Interval/10;
tmrNextClick.Start();
content++;
nextClick = tmrClickInterval.Interval;
label1.Text = content.ToString();
}
private void tmrNextClick_Tick(object sender, EventArgs e)
{
if (nextClick <= 0) tmrNextClick.Stop();
else
{
nextClick = nextClick - (tmrClickInterval.Interval/10);
lblNextClickCount.Text = (nextClick/100).ToString();
}
}
Я настраиваю интервал моего обратного отсчета таймера с помощью интервала первого таймера разделив на 10. Проблема в том, что я получаю некоторые ошибки таких как: Value '0' is not a valid value for Interval. Interval must be greater than 0.
на линии: tmrNextClick.Interval = tmrClickInterval.Interval/10;
.
Я не уверен, как избежать ошибок, поэтому я считаю, что может быть лучший способ подсчета времени простоя до следующего таймера. Кроме того, я бы хотел, чтобы подсчет был в хорошем постоянном интервале, но я очень запутался и не знаю, как справиться с этой проблемой.
Надежды на помощь.
Спасибо за совет, чтобы попробовать использовать двойную версию интервала таймера. Может быть полезно. – HelpNeeder
BTW. Один быстрый вопрос. Каков минимальный интервал таймера? – HelpNeeder
с System.Windows.Forms.Timer его 1, для System.Timers.Timer этот парень говорит, что его 1/64 сек http://www.eggheadcafe.com/community/ask-dr-dotnetsky/12/61662/c- -timer-interval-below-164-sec-.aspx – Peter