Фон
Я работаю над приложением, которое использует listView
, и я написал некоторые функции для выполнения действий с элементами в lisyView
.У меня есть действия как OnClickCopyAllDomains
и OnClickMarkAllDomains
.Эта функция работает с доменами (элементы listView), и когда listView
содержит более 100 000 элементов, я чувствую, как снижается скорость работы.Итак, ниже я покажу вам функции, и я хочу, чтобы вы заранее определили мне , как я могу улучшить скорость функций?
OnClickMarkAllDomains
Эта функция устанавливает listView
проверенных элементов в состояние true .
System::Void MainForm::OnClickMarkAllDomains(System::Object^ sender, System::EventArgs^ e) {
for( int i=0; i<listViewDomainsInfo->Items->Count; ++i )
listViewDomainsInfo->Items[i]->Checked = true;
}
OnClickCopyAllDomains
В этой функции я копирую listView
элементов (доменов) в буфер обмена. I, если количество доменов превышает 100.000, я жду 5 минут до завершения действия.
System::Void MainForm::OnClickCopyAllDomains(System::Object^ sender, System::EventArgs^ e) {
int itemsCount = listViewDomainsInfo->Items->Count;
System::String^ outputClipboard = System::String::Empty;
for( int i=0; i<itemsCount; ++i ) {
outputClipboard += listViewDomainsInfo->Items[i]->Text + "\r\n";
}
if( !System::String::IsNullOrEmpty( outputClipboard ) ) {
try {
System::Windows::Forms::Clipboard::SetText( outputClipboard );
}
catch( ... ) { }
}
}
Вопрос
Как мне улучшить свои функции, повысить их скорость?