Итак, я написал приложение, которое должно было настраивать различные параметры изображения в зависимости от значения ползунка, и есть несколько вещей, которые вы можете попробовать.
Сначала кэшируйте ваши изображения. Вы загружаете их с диска каждый раз, что будет намного медленнее, чем их извлечение из памяти. Загружать с диска только при необходимости.
Во-вторых, не добавляйте и не удаляйте элементы управления, вместо этого вы можете просто использовать существующие элементы управления для отображения изображений и изменять изображение / изменять размеры элемента управления по мере необходимости.
В-третьих, двойной буфер логики вашего дисплея. Это может вам не сильно помочь в этом случае, потому что вы все равно бросаете их на экран одним выстрелом, но стоит попробовать.
В-четвертых, вы можете использовать таймер вместо события изменения значения счетчика. Когда пользователь перетаскивает ползунок, запускают таймер и, в событии Tick таймера, выполняют свою логику. Когда пользователь отпускает слайдер, остановите таймер. Таким образом, вы можете контролировать максимальную скорость обновления.
В конце концов, я должен был получить доступ к данным изображения напрямую, чтобы выполнить свои манипуляции с изображениями, потому что GDI + был слишком медленным. Опять же, вы фактически не меняете данные пикселей, поэтому передача битовых блоков (blt) должна быть достаточно быстрой.
Я надеюсь, что это поможет.