I have to be able to save a file, unfortunatly it can potentially be very large so saving it can potentially take minutes. As I need to do this from a GUI thread I don’t want to block the GUI from executing. I was thinking about attempting the save operation on a seperate thread to allow the primary GUI thread to continue executing.
Is there a nice (easy) way to spawn a new thread, save the file, and destroy the thread without any nasty side effects?!
It must be said that I have NEVER had to use threads before so I am a complete novice! Any and all help would be greatly appreciated!
BackgroundWorker(as suggested by Frederik) is a good choice, particularly if you want to report progress to the UI while you’re saving. A search for BackgroundWorker tutorial gets a lot of hits, so you should be able to follow one of those to get you started.One thing to be careful of: would there be any way of changing the data structure that you’ll be trying to save from the UI thread? If so, you should disable those aspects of the UI while you’re saving – it would (probably!) be bad to be half way through saving the data, then allow the user to change some of it. If you can get away with effectively handing off the data to the background thread and then not touching it from the UI thread, that will make your life a lot easier.