Мне нужно заблокировать выполнение моего кода, пока пользователь ничего не вводит в TextBox
.Подождите, пока не произойдет «последнее» событие
Однако в этом конкретном случае мне действительно нужно подождать «пока пользователь не закончит печатать». I.e., я не хочу просто ждать, когда в первый раз произойдет событие TextChanged
, я хочу подождать до тех пор, пока не будет проведено не менее 500 мс с момента его последнего запуска, прежде чем продолжить выполнение моего метода.
В настоящее время у меня есть что-то, что использует таймеры, где каждый раз, когда происходит событие TextChanged
, таймер перезапускается, а при возникновении события Tick
таймера это означает, что пользователь «закончил набирать».
Есть три основные проблемы, связанные с этим подходом прямо сейчас, хотя:
- Там должно быть лучше/уборщик способом, чем не используя
Timer
для этого - До сих пор мне не нужно, чтобы блокировать выполнение пока пользователь «не закончил набирать», так что в основном просто добавлял мой код в обработчик событий
Tick
, но это не изменилось. - Мне также нужно установить тайм-аут, чтобы, если пользователь не закончил набирать определенное количество времени, он должен просто вернуться к методу, так как ему не удалось дождаться пользователя.
Как это сделать?
Это может быть наилучшим способом ... сброс таймера и запуск вашего кода после того, как х количество времени, которое вы решили, указывает на то, что пользователь набрал текст. Или вы можете поместить код в событие «Оставить» для элемента управления и сделать им вкладку из него, чтобы запустить свой код, но это может быть не тот пользовательский опыт, который вам нужен. –