Pre-allocate initial capacity using pinvoke to add items faster and then entire items at once using AddRange
private const int CB_INITSTORAGE = 0x161;
[DllImport("user32.dll", EntryPoint = "SendMessageA", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
public static extern int SendMessage(IntPtr handle, int uMsg, int wParam, object lParam);
private void btnTest_Click(object sender, EventArgs e)
{
List<object> lst = new List<object>(10000);
for (int i = 0; i < 1000; i++)
lst.Add("Item" + i);
SendMessage(comboBox2.Handle, CB_INITSTORAGE, lst.Count, lst.Count * 100);
comboBox2.Items.AddRange(lst.ToArray());
}