При запуске Dispatch Timer необходимо ли сначала его остановить?

Учитывая следующий код С#:

                if (finalTextConvertTimer != null)
                {
                    if (finalTextConvertTimer.IsEnabled)
                    {
                        finalTextConvertTimer.Stop();
                    }
                    finalTextConvertTimer.Start();
                }

Нужно ли сначала останавливать таймер? Один разработчик здесь говорит, что это не так. Просто ищу подтверждение.


person Jason P Sallinger    schedule 27.10.2014    source источник
comment
Если таймер существует (не удален), то вызов Stop() безопасен без проверки чего-либо.   -  person Sinatr    schedule 27.10.2014
comment
Если вы хотите перезапустить его, чтобы он снова отсчитывал полный интервал, тогда да.   -  person Hans Passant    schedule 27.10.2014
comment
Да, @HansPassant. Цель состоит в том, чтобы таймер запускался так, как если бы он запускался в первый раз. Мой коллега настаивает на том, чтобы вызов Start() делал это в любом случае.   -  person Jason P Sallinger    schedule 27.10.2014
comment
Подобные споры довольно глупы, когда вы можете просто попробовать сами или посмотреть в исходном коде. Легко заметить, что Start() абсолютно ничего не делает, если таймер уже включен.   -  person Hans Passant    schedule 27.10.2014
comment
Почему тогда Microsoft утверждает, что Interval перезапущен?   -  person Jason P Sallinger    schedule 27.10.2014


Ответы (1)


Извиняюсь за то, что сначала не провел исследование в MSDN. Из документации метода (http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatchertimer.start(v=vs.110).aspx):

Старт сбрасывает интервал таймера.

person Jason P Sallinger    schedule 27.10.2014
comment
ЕСЛИ таймер уже запущен, вызов Start ничего - person Sriram Sakthivel; 28.10.2014