I\'m writting a Windows Forms application in C# that executes a lot of long-running procedures on a single button click. This make the GUI to freeze till the execution. Also
The simplest yet efficient way to handle these scenarios, is to use a BackgroundWorker.
You put your heavy code in the DoWork event handler, and update your GUI through the ProgressChanged event handler.
You can find a tutorial here
Or even better they made a "how to" at msdn
If you have more specific questions after reading it, i'll be happy to oblige.