Soy relativamente nuevo en la programación de .NET y el multihilo en general, y me preguntaba si está bien usar .NET proporcionado BackgroundWorker para engendrar subprocesos de trabajo para hacer algo de trabajo en una aplicación de consola ? De la documentación variada en línea, veo que la intención para esta clase es más para aplicaciones orientadas a la interfaz de usuario, donde desea hacer algo de trabajo en segundo plano, pero mantener la UI receptiva e informar progreso, cancelar el procesamiento si es necesario, etc.Utilizando la clase .NET BackgroundWorker en la aplicación de consola
En mi caso, básicamente tengo una clase de controlador en la que deseo generar múltiples subprocesos de trabajo para hacer algo de procesamiento (lo que limita el número máximo de subprocesos de trabajo generados mediante un semáforo). Entonces quiero que mi clase de controlador se bloquee hasta que todos los hilos hayan completado el procesamiento. Entonces, después de comenzar un hilo de trabajo para hacer algo de trabajo, quiero que el hilo pueda notificar el hilo del controlador cuando se complete el procesamiento. Veo que puedo usar la clase de trabajador en segundo plano, y manejar los eventos DoWork y RunWorkerCompleted para lograr esto, sin embargo, me preguntaba si esta es una buena idea. ¿Hay mejores formas de lograr esto?
Aunque puede que no lo ayude con este problema, las nuevas características de programación paralela de .NET Framework 4 pueden interesarle. Algo para vigilar: se lanzará pronto. http://msdn.microsoft.com/en-us/concurrency/default.aspx –