Столкнулся с таким поведением программы. Подключены два слоя. Один из Оracle, другой локальный TAB-файл. Возможно, что в этой ситуации, это не имеет значения. Находясь на крупном масштабе (несколько объектов на экране), колесом мыши делаю масштаб значительно более мелким (охват большого количества объектов), затем, не дожидаясь отрисовки, возвращаюсь на исходный масштаб. Экран при этом долго не отрисовывается (хотя при крупном масштабе должен бы быстро отрисовать), крутится курсор, показывая что идут фоновые процессы. Потребляются большие ресурсы памяти и процессора (на моём примере - полностью занято одно ядро и забирается до 1 ГБ памяти дополнительно, которая потом освобождается). Такое ощущение, что идут процессы по отрисовке большого охвата объектов, которые уже не нужны.
Теряется много времени оператора, при таком поведении программы, если идёт работа с большим количеством объектов. Например, сдвинул человек вид в одну сторону, потом решил скорректировать немного, но ему нужно дождаться, кроме отрисовки последнего вида, дополнительно, когда закончатся процессы по обработке уже не нужного ему вида.
В MapInfo есть удобная функция (просто необходимая, при работе с большим количеством объектов) - после нажатия ESC прекращается отрисовка вида или отчёта и показывается то, что успело отрисоваться. Также есть возможность отключения отрисовки всех видов, но при этом можно выставлять их параметры и компоновать их рамки на отчёте, что даёт большой прирост производительности при промежуточных операциях (настройка стилей, например) и в макетировании.
Предлагаю:
1. Завершать немедленно предыдущие процессы отрисовки, если пользователь изменил параметры карты;
2. Дать возможность пользователю немедленно завершать отрисовку (наподобие, как в MapInfo);
3. Сделать возможность отключения отрисовки карт для ускорения макетирования (рисовать только рамки).