Hola Anel Hernandez
Adicionalmente al uso de BeginUpdate-EndUpdate, también es recomendable fijar la propiedad
Sorted a False.
Por otra parte, cuando agregas elementos a una lista dentro de un ciclo, la lista tendrá que ajustar dinámicamente el tamaño de la memoria reservada conforme se requiera. Sin darnos cuenta, esta operación puede repetirse un número considerable de veces y eso afectará el rendimiento.
Por este motivo, es muy aconsejable que puedas determinar con anticipación el número de elementos que vas a añadir y esto se puede indicar en la propiedad
Capacity.
De esta forma reservamos la memoria en una sola operación antes de entrar al ciclo.
Código Delphi
[-]var
ItemsToAdd: Integer;
I: Integer;
begin
ItemsToAdd:=100000;
.
.
.
SL.Sorted:=False;
SL.Capacity := SL.Count + ItemsToAdd;
for I := 1 to ItemsToAdd do
SL.Add('Algo');
Saludos