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.
A separate process will of course be safer: If it has any problems (crashing, infinite loops, leaks or whatever) - these problems will not affect the parent process.