Hello Matheo,
Thank you for writing.
There are several things that need improvement in the code snippet you have sent:
1. The RunWorkerCompleted event handling method is executed in the calling thread which in your case is the main UI thread. That said there is no need to invoke the method that adds items to RadListView, as Invoke is intended for cross thread access. Additionally Invoke is a costly function.
2. In the method that adds items to list view you call the Refresh method of RadListView. This forces the control to invalidate its client area and redraw itself. This again is a very costly method which should be called, if at all, after a batch of updates to the control.
3. To maximize the performance of RadListView while adding items you should surround the code block that adds them with a BeginUpdate() EndUpdate() method calls.
Here is how your code might look like with all the above improvements:
I hope this will be useful. Should you need further assistance, I would be glad to provide it.
All the best,
Ivan Petrov
the Telerik team