I have an application that loads many controls and data on startup. This takes a little while so I decided to implement a progress bar. Idealy i would use a backgroundworke r to perform the work and report progress, but controls I create in this thread will not be usable on the host form due to being created on a different thread. This raises two questions:

1: why are controls locked to the thread they were created on?. and...