Как сбросить таймер в C#?

Если вы используете относительную компоновку:

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_centerInParent="true"/>

Если вы используете LinearLayout

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_gravity="center"/>
108
задан Matthew Scharley 25 June 2009 в 05:24
поделиться

5 ответов

Я всегда делаю ...

myTimer.Stop();
myTimer.Start();

... это хак? :)

Согласно комментарию в Threading.Timer, это метод изменения ...

dueTime Тип: System.Int32 количество времени, чтобы отложить до вызов указанного метода обратного вызова когда был построен Таймер, в миллисекунды. Уточнить Timeout.Infinite для предотвращения таймер от перезапуска. Укажите ноль (0) для немедленного перезапуска таймера.

142
ответ дан 24 November 2019 в 03:29
поделиться

Вы можете написать метод расширения под названием Reset (), который

  • вызывает Stop () - Start () для Timers.Timer и Forms.Timer
  • вызывает Change для Threading.Timer
6
ответ дан 24 November 2019 в 03:29
поделиться

Все таймеры имеют эквивалент методов Start () и Stop (), за исключением System.Threading.Timer.

Таким образом, метод расширения, такой как ...

public static void Reset(this Timer timer)
{
  timer.Stop();
  timer.Start();
}

... один из способов решить эту проблему.

57
ответ дан 24 November 2019 в 03:29
поделиться

Другим альтернативным способом сброса windows.timer является использование счетчика, следующим образом:

int tmrCtr = 0;
Timer mTimer;

private void ResetTimer()
{
  tmrCtr = 0;
}

private void mTimer_Tick()
{
  tmrCtr++;
  //perform task
}  

Так, если вы намерены повторять каждые 1 секунду, вы можете установить интервал таймера в 100 мс, а счетчик проверить на 10 циклов.

Это подходит, если таймер должен ждать некоторых процессов, которые могут завершиться в разный промежуток времени.

1
ответ дан 24 November 2019 в 03:29
поделиться

Для таймера (System.Windows.Forms.Timer).

Методы .Stop, затем .Start работали как сброс.

2
ответ дан 24 November 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: