I don't think this is caused by QtConcurrent. For instance line #35 of your code snippet does not make much sense and also line #40 is simply invalid (you should get a segfault once i == size. My wild guess would be that your tree widget's header is set to adjust its width to its contents which is very slow if you keep adding items one by one.