Таймер хорошо, если обработка укладывается в интервал срабатывания таймера. Если нет, то могут полезть глюки, которые будет тяжело ловить, бо как они будут лезть на первый взгляд в случайный момент.
Тоже самое с Application.ProcessMessages в теле цикла. Там интервал (время выполнения одной итерации цикла) определяется человеком, т.е. для человека должно казаться, что программа работает без зависаний. Это где-то 30-50 мс на выполнение одной итерации цикла.
Во всех остальных случаях - отдельный поток или процесс.
|