У меня есть просмотр списка, который используется как индекс для простого поискового приложения.Каждый элемент индекса является словом, и нажатие на элемент добавит этот элемент в текстовое поле поиска.Пользователь может сначала щелкнуть любое из слов, которые он / она предпочитает, и их в текстовом поле поиска, а затем нажать кнопку поиска, чтобы выполнить поиск в документах.Проблема в том, что добавление более 1000 элементов в ListView занимает много времени!Я разработал индикатор выполнения и добавил таймер, который начинает добавлять элементы в просмотр списка, как только форма загружается.Это дает отзывчивость к приложению, но все же эффективность очень низкая.Я подозреваю, что при увеличении базы документов в индексе может быть около 100 000 слов, поэтому мне нужен более эффективный способ сделать это.Может быть, мне нужно изменить компонент ListView на что-то еще.Это код в таймере для добавления элементов в просмотр списка:
if (!listViewDone)
{
int pos = 0;
ListView listView1 = Search.getInstance().getListView();
listView1.BeginUpdate();
for (pos = listViewPos; pos < termf.Count && pos < listViewPos + listViewChunk; ++pos)
{
TermFreq t = termf[pos];
listView1.Items.Add(new ListViewItem(new String[] { t.term }));
progressBar1.Value = pos;
}
listView1.EndUpdate();
listViewPos = pos;
if (pos == termf.Count)
{
listViewDone = true;
termf = null;
timer1.Enabled = false;
Visible = false;
}
}