提高处理listView项的函数的速度 背景

提高处理listView项的函数的速度 背景,listview,c++-cli,Listview,C++ Cli,我正在开发一个使用listView的应用程序,我已经编写了一些函数,用于对lisyView中的项目执行操作。我的操作为OnClickCopyAllDomains和OnClickMarkAllDomains。此函数适用于域(listView项目),当listView包含超过100.000个项目时,我会感觉工作速度如何下降。下面我将向您展示函数,我希望您提前告诉我如何提高函数的速度? OnClickMarkAllDomains 此函数将listViewitems checked状态设置为true S

我正在开发一个使用
listView
的应用程序,我已经编写了一些函数,用于对
lisyView
中的项目执行操作。我的操作为
OnClickCopyAllDomains
OnClickMarkAllDomains
。此函数适用于域(listView项目),当
listView
包含超过100.000个项目时,我会感觉工作速度如何下降。下面我将向您展示函数,我希望您提前告诉我如何提高函数的速度?

OnClickMarkAllDomains

此函数将
listView
items checked状态设置为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;
    }
问题: 如何使我的功能更好,提高它们的速度?在循环之前和之后调用


此外,使用字符串连接时效率极低。将
outputClipboard
a而不是System::String.

复制到剪贴板怎么样?
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( ... ) { }
        }
    }