Если вы работаете со многими элементами, возможно, стоит изменить общую структуру вашей программы.
Вместо заполнения представления списка, попробуйте заполнить какую-то другую структуру данных, а затем заставить другой поток сделать окнаобновления и использовать SendMessage
.Таким образом, ваши рабочие потоки не останавливаются, и вы не заполняете свою очередь сообщений.С другой стороны, для этого потребуется намного больше синхронизации между потоками.
Другой способ - использовать некоторый элемент управления с виртуальными элементами, такими как VirtualTreeview (который можно настроить так, чтобы он вел себя какпредставление списка) Таким образом, вы можете заполнить свою структуру данных поддержки, и элемент управления запрашивает данные, как только элемент прокручивается в представление.Поскольку даже с миллионами элементов одновременно видны только несколько элементов, это может дать вам огромный прирост скорости, поскольку заполнение элемента управления теперь зависит только от задания общего количества элементов.