В продолжение
постаВот я вижу несколько путей решения, но вот какой выбрать было бы правильнее?
1) Избавиться от идеи поиска на лету, сделать поиск по нажатию кнопки. Получается шаг назад, но зато ничего сложного в реализации.
2) Сделать задержку с началом поиска. Т.е. при вводе с клавиатуры ожидать условно 500 мсек перед начало поиска. Если не произошло никаких измененений условий поиска - таки начать искать. А вот как определить правильно время задержки, чтобы оно не раздражало пользователя ожиданием? Хотя я думаю оно по любому будет раздражать.
3) Таки да сделать прерываемый поиск. Т.е. прерывать поиск при изменении критериев поиска. Но при прерывании надо будет не забыть обнулить все задействованные переменные. А если прерывать при выводе на экран - еще и интерфейс сбросить. Также прийдется довольно много переписывать кода для вывода результатов.
Но экспертного мнения я еще не слышал :)