Personalmente, utilizaría una instancia de BackgroundWorker para cada una de sus tareas. Sin embargo, tenga en cuenta que puede llamar varias veces al mismo método delegado en varias instancias diferentes de subprocesos.
Al tener una tarea de BackgroundWorker por método largo, tendrá mucho control sobre sus métodos. Además, según mi entendimiento, una vez que una instancia de un BackgroundWorker realiza una tarea, está ocupada con esta tarea de fondo y, por lo tanto, no está disponible para otros. Sin embargo, quizás esté equivocado, pero así es como lo haría, ya que su controlador de eventos DoWork() solo puede hacer lo que se le pide que haga para este BackgroundWorker. Por lo tanto, me parece imposible realizar tareas totalmente diferentes para una sola instancia de BackgroundWorker.
¿Le sirve de ayuda?
Long as in Lines of Code or Long as in Long Running? –
largo en largo plazo. – wallybh