I've got a program which populates then sorts a Treeview control on my form (~90K nodes). It is a very busy recursion algorithm which takes up to 30 seconds to complete, during which time my Label control stops refreshing. The label control is updated every 500ms by a Timer, providing progress status to the user.
This seems to be a common issue, but I haven't found the right fix for my situation. I tried using a backgroundWorker to move the work off the UI thread, but since this work is updating the Treeview control on the main form, I get the error about trying to update a control started by a different thread. I've tried putting the classic Label.Refresh and Me.Refresh in my Timer_Tick sub, but no joy there also. Any suggestions is welcome.