first, I am not sure this is the forum to post this question.

If not, my appologies, and please reffer me to the correct forum.

I have written a user control that is hosted in IE.

hosting works fine and everything is ok.

this control performs many actions including file download and other lengthy operations.

the control has indication of its progress and reports it using a progress bar on the UI.

if I run it in a single thread, it works fine but naturally no indication to the user since the UI thread is stuck and the only thing the user sees is a "work finished" message at the end of the work.

if I use background workers to perform the operations i have two problems:

1. if the user does as much as clicking the control - IE freezes up to the point of 'kill process'

2. the UI occasionly shows some sort of progress but it has little or no connection to the real state of the progress. i.e - it will show the progress message quite some time after it actually happend (the event was fired).

I should probably mention that if I use the same control (with background workers) in a simple windows application, it works like magic.

so here are the questions:

1. can one create a multithreaded UI hosted in IE

2. if so, what is the best way to do so

3. why does IE freeze on me if I 'touch' it while it is background-working

4. why are the events showing up realy late

5. (bonus question...) lets assume my control exposes a public event. how do I wire it to a client side script

thanks for the help.


Re: Internet Explorer Extension Development Hosting a user control in IE - multithreaded UI problem


You should post your question in an IE newsgroup at www.microsoft.com/communities. All I know is: make sure you use Control.Invoke() when updating the controls from your BackgroundWorkers.