For "event queue" see my Tip/Tricks article:
Simple Blocking Queue for Thread Communication and Inter-thread Invocation[
^].
A reasonable sample of how to work with
BackgroundWorker
is shown in my other answer:
Changes step by step to show a control[
^].
On process of completion of the task of
BackgroundWorker
please see the answer by Olivier.
You will see thread technique from my sample; I tested it. See also the alternative Tip on the page, but that's only for v.4.0 of the Framework. What's good about my code, it works with 2.0 as well.
—SA