I am using a very component heavy form that takes long time to set up. Part of the set up is behaviour of third party controls, that I cannot gather progress on. (DevExpress XtraScheduler). This freezes the app.
What properties on the form do I need to set up so the forms loads in the background and what events should I contentrate on ?
EDIT:
I am aware of the BackgroundWorker, but If I push the creation of the form on the BW, how will I know when the process is done ? I mean, can I somehow let the form prepare itself (remember I am not in control of what the components are doing) and notify the BW that its done preparing ? What event would that be ?
If it is the initial load of your application that takes time, you could consider adding a splash screen. If it is a secondary form, then the BackgroundWorker class is an excellent component allowing you to perform time consuming tasks on background threads without freezing your main GUI thread. The DoWork, ProgressChanged and RunWorkerCompleted events are particularly useful.