So I'm trying to populate a large amount of icons to a listview. In order to avoid long wait times, I'm trying to get it to load the first 1000 results and then load more if the user presses a load more button. 

Here's where I'm stuck. If I load all 10,000+ icons at once it takes me 37 sec. However, if I decide to add 500 more icons everytime the user clicks the button it takes me 40 sec which is worse than adding it all at once! The only difference in code is that I had to make this one line a delegate to avoid cross-threading issues. Is there a faster way to do this?

```
for (int i = lastLoadedIndex; i < lastLoadedIndex+500; i++)
{
    string file = resultArr[i];

    Invoke((MethodInvoker)delegate()
    {
        this.imageList1.Images.Add(Image.FromFile(file));
    });
}

```