The
BackgroundWorker.RunWorkerCompleted[
^] runs on the main thread. If you're opening up your
Form[
^] on the main thread and the
Load[
^] or
Shown[
^]
Event[
^] takes up some time to complete then your application is waiting for the
Load
or
Shown Event
to do its work.
Opening your
Form
on a worker thread is not an option, as you've already noticed.
When you say your 'applets' are taking a long time to load, perhaps then that's the problem you should be looking at. Unless you make multiple calls to a database, fetching thousands of records, making difficult calculations, I would say loading an 'applet' shouldn't take that long...
Perhaps you could take some of that long-running operation out of the
Form
and into another
Class
that works on a worker thread and communicates its result to your
Form
.
Hope that helps.