2009-05-29 11 views
12

Disponga de un conjunto de tareas discretas de larga duración: análisis de 10s de miles de líneas de un archivo de texto, hidratación en objetos, manipulación y persistencia.¿Existe un .Net equivalente a java.util.concurrent.Executor?

Si estaba implementando esto en Java, supongo que podría agregar una nueva tarea a un ejecutor para cada línea en el archivo o tarea por líneas X (es decir, fragmentos).

Para .Net, que es lo que estoy usando, no estoy tan seguro. Tengo la sospecha de que CCR podría ser apropiado aquí, pero no estoy lo suficientemente familiarizado con él, por lo que planteo esta pregunta.

¿Puede CCR funcionar de manera equivalente a los ejecutores de Java, o hay algo más disponible?

Gracias

Respuesta

5

Es posible que desee mirar el Task Parallel Library.

A partir de C# 5 esto está integrado en el lenguaje utilizando las palabras clave async y await.

+0

El enlace parece estar roto. –

0

La clase BackgroundWorker es probablemente lo que usted está buscando. Como su nombre lo indica, le permite ejecutar tareas en segundo plano, con agrupamiento administrado automáticamente y eventos de actualización de estado.

+1

El ejecutor de Java puede hacer mucho más que eso. Ver http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ThreadPoolExecutor.html por ejemplo. –

1

Si va a preguntarle a un grupo de personas de .NET qué es lo más cercano a ser equivalente a Java Excecutors, no estaría de más describir las características distintivas de Java Executors. La persona que conoce tu respuesta puede no estar más familiarizada con Java que con .NET.

Dicho esto, si la ya mencionada Task Parallel Library es excesiva para sus necesidades, o si no desea esperar por .NET 4.0, quizás ThreadPool.QueueUserWorkItem() sea lo que está buscando.

Cuestiones relacionadas