I have a WinForms app. that when a button is clicked retrieves a bunch of data from database formats it and displays it to the end user. The operation can take 10 - 30 seconds. I would like to display a message to the user in a Dialog just saying "Be patient the operation is running" while the operation is running and then close when the data is ready to be presented to the end user. What is the best way to do this, start a new thread, use a Delegate or something else?