У меня есть таймер, который начинает отсчет, когда определенное событие (someEvent
) происходит в течение одной секунды, если событие снова запущено в течение этой секунды, я хочу, чтобы первый таймер остановился и начал отсчет снова от 0 Я попытался это:таймер не содержит определения «change»
void someEvent (object sender, TextChangedEventArgs e)
{
aTimer = new System.Timers.Timer();
aTimer.Change(5000, 0);
aTimer.Elapsed += OnTimedEvent;
aTimer.AutoReset = true;
aTimer.Enabled = true;
}
определение таймера в MainWindow:
private System.Timers.Timer aTimer;
Согласно этому C# Timer.Change Method
Но я получаю сообщение об ошибке в вопросе aTimer.Change: «Таймер не содержит определения« Изменить ».»
Это было реализовано с использованием WPF.
Похоже 'Change()' метод на [ 'System.Threading.Timer'] (HTTPS : //msdn.microsoft.com/en-us/library/system.threading.timer (v = vs.110) .aspx) в отличие от класса System.Timers.Timer. –
Если вы используете WPF (и хотите, чтобы таймер запускался в потоке пользовательского интерфейса), вам может потребоваться перейти на ['System.Windows.Threading.DispatcherTimer'] (https://msdn.microsoft.com/en- us/library/system.windows.threading.dispatchertimer (v = vs.110) .aspx) –
Два общих решения для этого типа проблем: a) используют класс, который вы читаете для документации, или b) читаете [ документация для используемого класса] (https://msdn.microsoft.com/en-us/library/system.timers.timer (v = vs.110) .aspx). Оба работают хорошо. Однако в некоторых случаях мы обнаруживаем, что мы используем неправильный класс и читаем документацию для другого неправильного класса. Это может быть очень запутанным. –