I did more testing later that day and invoking Textbox1 the loop was much slower than using ReportProgress.

I think the UI thread was just getting overloaded with ReportProgress because the loop was so much faster.