551
社区成员




ListBox1->Items->Clear();
ListBox1->Items->Add(0);
ListBox1->Items->Add(1);
ListBox1->Items->Add(2);
ListBox1->Items->Clear();
for (int i = 0; i < 50000; i++)
ListBox1->Items->Add(i);
ListBox1->Items->BeginUpdate();
ListBox1->Items->Clear();
for (int i = 0; i < 50000; i++)
ListBox1->Items->Add(i);
ListBox1->Items->EndUpdate();
ListBox1->Items->BeginUpdate();
try
{
ListBox1->Items->Clear();
for (int i = 0; i < 50000; i++)
ListBox1->Items->Add(i);
}
__finally
{
ListBox1->Items->EndUpdate();
}
ListBox1->Items->BeginUpdate();
try
{
ListBox1->Items->Clear();
for (int i = 0; i < 50000; i++)
ListBox1->Items->Add(i);
}
__finally
{
ListBox1->Items->EndUpdate();
}
TStringList *TempList = new TStringList;
try
{
for (int i = 0; i < 50000; i++)
TempList->Add(i);
ListBox1->Items->Assign(TempList);
}
__finally
{
delete TempList;
}
TMemoryStream *mStream = new TMemoryStream;
TStringList *TempList = new TStringList;
try
{
for (int i = 0; i < 50000; i++)
TempList->Add(i);
TempList->SaveToStream(mStream);
mStream->Position = 0;
ListBox1->Items->LoadFromStream(mStream);
}
__finally
{
delete TempList;
delete mStream;
}
經實測上面三種方式的結果...TStringList+Assign 稍微遜了一點~
訣竅大概就是...只要能避開 UI 的更新之背後內存處裡...都很快......