I have a Winform app which lists a batch of invoices in a gridview. The users select the batch and clicks a button, "Generate Invoices". The process takes about 4-5 mins. While this is running I will have a marquee progress bar and would like to disable all buttons.
Should I use a BackgroundWorker Process or create a new thread to run this task?