Nothing special here. You call a BackgroundWorker from another BackgroundWorker the exact same way you would call it from the main thread: via the
RunWorkerAsync()[
^] method.
Or use the
RunWorkerAsync(object)[
^] overload.
The BackgroundWorker then fires its
DoWork[
^] event. Subscribe a method to it in which you do the actual work. The method has to conform to a
DoWorkEventHandler[
^], which means its return type is
void[
^] and it needs two parameters:
The first is
sender
of type
object[
^], which actually is a reference to the calling BackgroundWorker itself.
Second is a
DoWorkEventArgs[
^], which encapsulates
Argument[
^], again of type object. That's a reference to the exact same argument you gave the RunWorkerAsync(object) overload.