2010-10-21 16 views

Respuesta

4

Use TPL siempre que pueda porque es una manera más clara y más declarativa de expresar sus necesidades de paralelismo.

MSDN explica "El TPL escala el grado de concurrencia de forma dinámica para utilizar de manera más eficiente todos los procesadores disponibles. Además, el TPL maneja la partición del trabajo, la programación de hilos en el ThreadPool, soporte de cancelación, administración estatal y otros detalles de bajo nivel. Al usar TPL, puede maximizar el rendimiento de su código mientras se enfoca en el trabajo que su programa está diseñado para lograr ".

Consulte también http://www.albahari.com/threading/part5.aspx que detalla los beneficios de 'Data Parallelism' y otros beneficios de TPL.

1

extensiones paralelas funciona muy bien para la paralelización de tareas pequeñas. Las extensiones paralelas realmente proporcionan construcciones de código. ForEach, por ejemplo, reemplaza la declaración foreach normal, pero en su lugar la ejecutará en paralelo. Ese es el nivel para el que se usarán las extensiones paralelas.

Cuando está creando una aplicación de subprocesamiento múltiple completa (por ejemplo, un servidor web), la conexión y la sincronización normales todavía tendrán que ser utilizadas. Por supuesto, WCF e IIS ya resuelven esos problemas por usted.

Por supuesto, existe un punto medio que se resuelve mediante grupos de subprocesos.

1

La biblioteca Task Parallel no está pensada principalmente para la sincronización de subprocesos, sino que está diseñada para facilitar muchas más tareas. TPL está diseñado para facilitar los siguientes pasos:

  1. Partió en pequeños trozos.
  2. Ejecutar esos trozos en paralelo a través de subprocesamiento múltiple.
  3. Clasifique los resultados a medida que estén disponibles, de forma segura para la ejecución de subprocesos.

Y solo el tercer elemento está relacionado con la sincronización de subprocesos. Y, por supuesto, aún puede usar primitivas de sincronización de subprocesos conocidas para realizar el resultado de intercalación de manera segura para subprocesos (por ejemplo, utilizando la clase Paralelo, cuando debe cotejar este resultado por su cuenta).

Cuestiones relacionadas